In the main toolbar, here are a number of toolbar buttons which are displayed as one item/control when in fact they are a group of several controls when accessed with the JAWS forms fields list or read using the tab key.

Using the tab key on the top level toolbars resulted in jumping over important navigation items. This means that JAWS and Dragon users face problems in that they cannot access parts of the CMS via the keyboard. Meaning the user cannot add or edit content. All toolbar buttons should be accessible via the keyboard. It should be accessible using JAWS modifiers as well e.g. forms fields list.

When editing and managing content, each page header has an ‘open configuration options’ toggle button. These buttons make no sense when accessed out of context with either the tab key or JAWS forms fields list. For example, "Edit" has no Aria- describedby / labelledby (x) value to help with context or aria-live to explain what is happening dynamically when you edit.

I appreciate some of the above can be worked out by navigating through everything once and relying on recall to understand options, However, not been able to access top level toolbar options with major Screen readers needs fixing.

I've escalated to Critical and I'm sure lots do this but it is preventing me using your CMS this is a major issue if you rely on assistive technology.

Kind regards,
Kevin Webster

CommentFileSizeAuthor
#4 Drupal A11y issue.jpg400.61 KBOBKev

Comments

OBKev created an issue. See original summary.

cilefen’s picture

Version: 8.6.x-dev » 8.7.x-dev
Issue tags: +Accessibility
mgifford’s picture

Priority: Critical » Major

Hey Kevin, this might be more than one bug report and there might already be an issue open for this. I'm not 100% sure.

A screen capture would be great (even just the HTML that you want changed). Helps us dig down and make sure it is in the right place.

I'm bumping this down to Major until we get a bit more information on it.

OBKev’s picture

Version: 8.7.x-dev » 8.6.x-dev
Priority: Major » Critical
StatusFileSize
new400.61 KB

I can show you the code and what JAWS see's if that helps. This is using JAWS with Internet Explorer 11
Images attached:

andrewmacpherson’s picture

Priority: Critical » Major

Major is the correct status for this.

OBKev’s picture

I totally agree I'm not sure why it changed back to Critical.

OBKev’s picture

Apart from re-classifying and asking for more clarity has this been accepted as an issue or looked into?

andrewmacpherson’s picture

This issue is a bit unclear. There's quite a bit of detail, but I think it's describing several distinct issues. These can be addressed individually.

Using the tab key on the top level toolbars resulted in jumping over important navigation items.

It's not clear if you're using the toolbar provided by Drupal core, or the admin toolbar module from contrib. I suspect this part refers to the extra behaviour from the contrib module.

The toolbar provided by Drupal core has two orientation modes:

  • In the horizontal orientation, only top-level links are included. All admin pages in Drupal core can be accessed by using a top-level link, then using links on the landing page.
  • In the vertical orientation, the admin toolbar allows access to nested pages. There are buttons to expand collapse some sections of the menu tree. For example, the "structure" top-level link is followed by a button called "extend structure" which discloses the second level links. It could be improved by making proper use of aria-expanded and aria-controls properties. Currently the button conveys it's expanded/collapsed state by changing the text on the button. In this example, the button name changes from "extend structure" to "collapse structure". I will open a separate issue to address this.

The admin toolbar contrib module adds drop-down sub-menus to the toolbar when it is in horizontal mode. These work with mouse hover but don't have good accessibility the last time I checked. There is a proposal to bring some of the contrib module's features into Drupal core. It will need to have an accessibility plan to do so. The contrib module is included with some Drupal distros.

When editing and managing content, each page header has an ‘open configuration options’ toggle button. These buttons make no sense when accessed out of context with either the tab key or JAWS forms fields list. For example, "Edit" has no Aria- describedby / labelledby (x) value to help with context or aria-live to explain what is happening dynamically when you edit.

This refers to the buttons from contextual links module, most likely. These aren't part of the toolbar. They are actually scattered all over the page, and represent shortcuts to various other admin pages. Typically each "block" has one of these buttons.

You're correct that some of these have no context and can't be distinguished. Some of them do have informative names though. For example, the contextual menu button next to the search block is called "Open Search configuration options". Drupal core is quite inconsistent here, so we should address this. In fact I think there is already an open issue about it. If not, I'll open one.

These contextual links buttons do make use of aria-pressed, but this isn't the most appropriate ARIA state to use. It would be better to use aria-expanded and aria-controls to convey the behaviour of these buttons. I'll open a separate issue about that, because it's separate from any issue to do with the toolbar.

Aside: I've started a plan to address a bunch of accessibility issues in the Drupal core toolbar as a whole, in #3084529: [META] improve accessibility of toolbar. Linking this one as a related issue which needs more investigation. I will gather all the issues raised here under that parent issue.

andrewmacpherson’s picture

Note to self: this one could do with a better title.

katannshaw’s picture

@andrewmacpherson: Maybe I can add some clarification to this issue. I tested it using keyboard tabbing and VoiceOver on Mac as I don't have JAWS installed on my Windows laptop. I was able to tab through to the shortcuts submenu items without an issue, although as mentioned it does need to have aria-expanded added to it to inform the screen reader user of its state.

However when I viewed the links within the rotor (Ctrl+Option+U) I could see the Shortcuts link but not the submenu links. I think that's at least partially what the OP is referring to. Those links should be showing up in that list and I'm not sure why they aren't.

I don't think that aria-controls will affect it as it's only modestly supported by screen readers. I'll look into it further as well, but I hope that this info clears things up a bit.

-Kat

andrewmacpherson’s picture

However when I viewed the links within the rotor (Ctrl+Option+U) I could see the Shortcuts link but not the submenu links. I think that's at least partially what the OP is referring to. Those links should be showing up in that list and I'm not sure why they aren't.

That's by design. There is only one second-level tray of links visible at once, and the others are hidden by CSS display:none;. These won't appear in the list of links in VO rotor, or the equivalent tools in JAWS and NVDA. For links to appear in the VO rotor list, they would have to be exposed in the accessibility tree. There's no way that can work with the current design; if they were just .visually-hidden that would be a problem for sighted keyboard users and speech control users, because they would be operable but not perceivable. Remember: the screen reader's job is to convey what is on the screen.

aria-expanded added to it to inform the screen reader user of its state.

It actually does more than that. The presence of aria-expanded informs the user that something is expand-able, as well as conveying the current state. It should make it clearer that the "shortcuts" button reveals some content. You're correct that aria-controls support isn't widespread; I think JAWS is the only assistive tech that does anything with it. However it is the correct recommended pattern for disclosure elements, and works fine in JAWS.

katannshaw’s picture

It actually does more than that. The presence of aria-expanded informs the user that something is expand-able, as well as conveying the current state.

Yes, I've got that ;-)

...There's no way that can work with the current design; if they were just .visually-hidden that would be a problem for sighted keyboard users and speech control users, because they would be operable but not perceivable. Remember: the screen reader's job is to convey what is on the screen.

I've always understood that all links on a page should also appear to a screen reader including in the rotor because they are "relied upon" in the operation of the page, so I'm a bit confused by this.

-Kat

andrewmacpherson’s picture

A link (or any other content) which is inside a collapsed/hidden container is not "on the page". It can't be seen, nor operated by touch, mouse, keyboard, or speech control; you have to open the container first. Screen readers are no different in this regard: hidden content is hidden.

katannshaw’s picture

@andrewmacpherson: I see what you're saying. That makes sense.

During my testing with VO, the menu was expanded on the screen and the rotor still wasn't detecting the submenu items in the list at all. According to the OP in JAWS it shows them in the same line as the Shortcuts link but doesn't read them out. That's what I meant to convey. I apologize for the miscommunication. Hope it helps.

-Kat

andrewmacpherson’s picture

This issue summaries; (this one, and the related one) are a bit hard to follow, and conflate several problems.

I'm going through the toolbar with as many browsers and screen readers as I can (including outdated versions I keep around). The behaviours are markedly different; I'm not experiencing any problems at all with NVDA, for instance.. I'll write a summary when I'm done.

Right now, the most significant problem is the mis-use of aria-owns, which sets up a parent/child relationship. Buttons cannot have interactive children, so I think this may be why the links are not available.

You don't say which browser you were using. That an important detail to include, because VO can only deal with what it's been given by the browser.

katannshaw’s picture

Sorry, I tested with VO in the latest version of Chrome. If you need me to help out with any testing please let me know. I'm here to help.

-Kat

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.2.x-dev

Drupal 8 is end-of-life as of November 17, 2021. There will not be further changes made to Drupal 8. Bugfixes are now made to the 9.3.x and higher branches only. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.15 was released on June 1st, 2022 and is the final full bugfix release for the Drupal 9.3.x series. Drupal 9.3.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.4.x-dev branch from now on, and new development or disruptive changes should be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.9 was released on December 7, 2022 and is the final full bugfix release for the Drupal 9.4.x series. Drupal 9.4.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.5.x-dev branch from now on, and new development or disruptive changes should be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 11.x-dev » main

Drupal core is now using the main branch as the primary development branch. New developments and disruptive changes should now be targeted to the main branch.

Read more in the announcement.

mgifford’s picture

So since Navigation has been added to the standard profile and recipes:

https://www.drupal.org/project/drupal/issues/3575171

Can we close this issue for D12?

quietone’s picture

Project: Drupal core » Toolbar
Version: main » 1.x-dev
Component: base system » Code
dydave’s picture

Version: 1.x-dev » 2.x-dev