Page MenuHomePhabricator

Campaign events accessibility
Closed, ResolvedPublic

Description

I reviewed campaign events extension for accessibility, using the following tools:

  1. Mac screen reader and checked if tab order was logical and if enough information was presented on tabbing that a user could understand what element was being tabbed to.
  2. Chrome lighthouse
  3. Axe Devtools
  4. Chrome Rendering tab
  5. Chrome CSS overview tab

Here are some of the ones that I found to be important when navigating the site with a screen reader, or that kept coming up in multiple tests and / or labeled critical by the various tools:


On Special:EventDetails, there is no accessible text for checkboxes in participants tab. Anyone using a screen reader would not know what checkbox they were selecting, so it needs aria-label for checkbox inputs. See images below for additional information:

Screenshot 2023-04-25 at 3.04.58 PM.png (956×2 px, 242 KB)

txt to voice - participants checkbox.png (1×1 px, 214 KB)


On Special:EditEventRegistration and Special:EnableEventRegistration the clear buttons in the start time and end time fields need aria-label="clear start time" and aria-label="clear end time" to them so screen readers can let the viewer know what the button does.

add aria-label="clear start time" and aria-label="clear end time".png (958×1 px, 297 KB)


On Special:MyEvents, the ellipses needs an accessible label, something like aria-label="more options for {event name}" as right now there is no label to let screen readers know what this is

Screenshot 2023-04-25 at 1.41.32 PM.png (1×3 px, 171 KB)


The color contrast between the gray background ( hex #F8F9FA) and the red text (hex #DD3333) in the participants tab is currently 4.33 and needs to be increased slightly to 4.5:1 to fit into WCAG 2.1 AA standards (which is what the foundation aspires to reach). It is only with the gray background that this text color is an issue.

Screenshot 2023-05-11 at 1.20.40 PM.png (1×1 px, 142 KB)

I found this in the Contrast issues section of the CSS overview tab in devtools in Chrome.

Screenshot 2023-05-11 at 1.21.58 PM.png (216×1 px, 31 KB)

Event Timeline

@vaughnwalters: Hi, please set code project tags so other people who don't know or don't care about team tags can also find this task when searching via projects and not only via a person. Thanks a lot!

On Special:EventDetails, there is no accessible text for checkboxes in participants tab. Anyone using a screen reader would not know what checkbox they were selecting, so it needs aria-label for checkbox inputs.

I think this could be resolved by adding aria-labelledby, pointing to the cell with the username. But it should probably wait until T318165 is done, so that we'll work directly on the final version of the code.

On Special:EditEventRegistration and Special:EnableEventRegistration the clear buttons in the start time and end time fields need aria-label="clear start time" and aria-label="clear end time" to them so screen readers can let the viewer know what the button does.

This is a core widget and we can't modify it in the extension, but I've filed T338791.

On Special:MyEvents, the ellipses needs an accessible label, something like aria-label="more options for {event name}" as right now there is no label to let screen readers know what this is

The button already has a label reading "Manage event" in the no-JS version. Apparently, that label is lost when replacing the widget. It should be pretty simple to bring it back.

The color contrast between the gray background ( hex #F8F9FA) and the red text (hex #DD3333) in the participants tab is currently 4.33 and needs to be increased slightly to 4.5:1 to fit into WCAG 2.1 AA standards (which is what the foundation aspires to reach). It is only with the gray background that this text color is an issue.

We're changing the background color to white in T318165, so that should hopefully fix this issue.

Quick update with the status quo:

On Special:EventDetails, there is no accessible text for checkboxes in participants tab. Anyone using a screen reader would not know what checkbox they were selecting, so it needs aria-label for checkbox inputs.

I will fix this.

On Special:EditEventRegistration and Special:EnableEventRegistration the clear buttons in the start time and end time fields need aria-label="clear start time" and aria-label="clear end time" to them so screen readers can let the viewer know what the button does.

This is a general MW issue, will be fixed in T338791: "Clear" icon in DateTimeInputWidget is not accessible because it has no label.

On Special:MyEvents, the ellipses needs an accessible label, something like aria-label="more options for {event name}" as right now there is no label to let screen readers know what this is

Will fix.

The color contrast between the gray background ( hex #F8F9FA) and the red text (hex #DD3333) in the participants tab is currently 4.33 and needs to be increased slightly to 4.5:1 to fit into WCAG 2.1 AA standards (which is what the foundation aspires to reach). It is only with the gray background that this text color is an issue.

Fixed in r927191.

Change 938892 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/CampaignEvents@master] MyEvents: preserve kebab menu label when replacing the widget

https://gerrit.wikimedia.org/r/938892

Change 938900 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/CampaignEvents@master] Add labels to participant checkboxes in EventDetails

https://gerrit.wikimedia.org/r/938900

Change 938892 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] MyEvents: preserve kebab menu label when replacing the widget

https://gerrit.wikimedia.org/r/938892

Change 938900 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Add labels to participant checkboxes in EventDetails

https://gerrit.wikimedia.org/r/938900

All done but the icon in the datetime selectors, for which I filed T338791.

On Special:EventDetails, there is no accessible text for checkboxes in participants tab. Anyone using a screen reader would not know what checkbox they were selecting, so it needs aria-label for checkbox inputs.

✅ There is now a label that correctly corresponds to each checkbox:

Screenshot 2023-07-24 at 8.36.44 PM.png (694×1 px, 172 KB)

Screenshot 2023-07-24 at 11.25.35 PM.png (1×1 px, 187 KB)


On Special:MyEvents, the ellipses needs an accessible label, something like aria-label="more options for {event name}" as right now there is no label to let screen readers know what this is

✅ There is now a "Manage event" text that makes this element accessible to screen readers

Screenshot 2023-07-24 at 8.42.29 PM.png (512×2 px, 202 KB)

Screenshot 2023-07-24 at 11.27.15 PM.png (1×1 px, 219 KB)


The color contrast between the gray background ( hex #F8F9FA) and the red text (hex #DD3333) in the participants tab is currently 4.33 and needs to be increased slightly to 4.5:1 to fit into WCAG 2.1 AA standards (which is what the foundation aspires to reach). It is only with the gray background that this text color is an issue.

✅ This is corrected now and the contrast ratio is now 4.56:1

Screenshot 2023-07-24 at 9.34.52 PM.png (768×1 px, 110 KB)

As a note, I have created ticket T342595 for another contrast issue on this same special page.



The above are all fixed. The only remaining issue is the following:

On Special:EditEventRegistration and Special:EnableEventRegistration the clear buttons in the start time and end time fields need aria-label="clear start time" and aria-label="clear end time" to them so screen readers can let the viewer know what the button does.

and it will be fixed in T338791 per the comment at T336311#9020509, so I am sending this ticket to design sign off.

ifried subscribed.

Thank you for identifying and highlighting these issues, @vaughnwalters, and thank you @Daimona for fixing them! As we have one remaining issue that has been filed separately, I am marking this ticket as Done.