WordPress.org

Make WordPress Core

Opened 3 years ago

Last modified 2 weeks ago

#28888 assigned defect (bug)

Customizer - Widgets - Screen Readers Don't Announce Widget Names

Reported by: GrahamArmfield Owned by: davetgreen
Milestone: Future Release Priority: normal
Severity: normal Version: 3.9
Component: Customize Keywords: has-patch
Focuses: accessibility Cc:

Description

Tested with NVDA on top of FF30 on Windows 7 64 bit.

It's possible to tab to the various sidebar areas using a screen reader - fairly good feedback. Hitting Enter to open the list of widgets works too. But when tabbing between the individual widgets, NVDA is not announcing the widget name but instead a string such as "customize return=%2Fsrc%2Fwp-a… link".

So the screen reader user doesn't know which widget has focus.

A similar result was found when using JAWS on top of IE10.

Expected result: The screen reader should announce widget name.

Attachments (1)

28888.patch (1.6 KB) - added by davetgreen 2 weeks ago.

Download all attachments as: .zip

Change History (20)

#1 @GrahamArmfield
3 years ago

  • Summary changed from Customizer - Widgets - Screen Reders Don't Announce Widget Names to Customizer - Widgets - Screen Readers Don't Announce Widget Names

Correct typo in Summary.

#2 @SergeyBiryukov
3 years ago

  • Keywords needs-patch added

#3 @celloexpressions
3 years ago

  • Milestone changed from Awaiting Review to Future Release
  • Version changed from trunk to 3.9

This ticket was mentioned in Slack in #core-customize by celloexpressions. View the logs.


2 years ago

#5 @valendesigns
2 years ago

This needs an accessibility review and someone to take over and create a patch. Anyone from the accessibility team want to review?

#6 @afercia
2 years ago

Probably something is changed since this ticket was open, still there are a couple of issues. Please refer to the screenshot below, the .widget-action link is empty, there's no text to be read out:
https://cldup.com/YxxzfuuBa6.png

The following link, the one with the 3 span, appears to be something not used, unless I'm missing something. Maybe something inherited from the old widgets screen code when in "accessibility mode" see /wp-admin/widgets.php?widgets-access=on

This ticket was mentioned in Slack in #accessibility by joedolson. View the logs.


2 years ago

#8 @afercia
2 years ago

Reviewed a bit and here's how Firefox+NVDA read out the active widgets:

when arrowing:
clickable clickable link   <-- the non-focusable clickable draggable heading and the link together
heading  level 4 Calendar  <-- the heading with the widget name

when tabbing:
clickable clickable link   <-- the focusable link is empty

There's room for improvement :)

  • the toggle link should be a button, the JavaScript part should be updated (no keydown if any, and no preventDefault needed)
  • should have an aria attribute aria-expanded to be dynamically updated
  • should have some screen reader text to say what it does: "Edit {widget name} widget" and when expanded "Close {widget name} widget"
  • the "Remove" and "Close" links should be buttons
  • looks like the "search as you type" searches on each keystroke. Should really try to detect when users actually end typing. See for example what was done for the Themes search using _.debounce in #26600 and #31812
  • the "Remove" label: it says "Remove" and has a title attribute "Trash widget by moving it to the inactive widgets sidebar." So is it removing, trashing, or moving? What is the "widgets sidebar" in the Customizer context? Bit confusing and doesn't explain the most important thing: settings/content will be preserved.

Agreed would need someone to take over and create a patch. Patchers welcome!

Last edited 4 weeks ago by afercia (previous) (diff)

#9 @davetgreen
17 months ago

I'd be happy to tackle and patch this ticket if no-one else is currently writing a patch?

#10 @westonruter
17 months ago

  • Owner set to davetgreen
  • Status changed from new to assigned

@davetgreen Go for it.

#11 @davetgreen
11 months ago

I'm finally getting around to writing a patch for this. Should hopefully have something ready in the next couple of days.

This ticket was mentioned in Slack in #accessibility by afercia. View the logs.


9 months ago

#14 @davetgreen
9 months ago

@afercia I'm dragging my feet on this due to some intense work commitments, but I'm targeting the patch being complete by October 10th latest.

This ticket was mentioned in Slack in #core-customize by westonruter. View the logs.


4 months ago

#16 @westonruter
4 months ago

@davetgreen any update on this ticket?

#17 @davetgreen
4 months ago

@westonruter If I can't find the time to revisit and complete the patch I was working on for this by close of play Friday March 3rd, I'll make my WIP patch available and remove my ownership of this ticket so that someone else can pickup.

#18 @afercia
4 weeks ago

Looking back at this, many issues have already been fixed, see [40480]. As far as I see, the ones left to address are:

Last edited 4 weeks ago by afercia (previous) (diff)

@davetgreen
2 weeks ago

#19 @davetgreen
2 weeks ago

  • Keywords has-patch added; needs-patch removed

hi @westonruter @afercia

I've changed the title attribute to..

Remove widget by moving it to the inactive widgets list: your widget settings/content will be preserved.

The use of list is as per the text on the Appearance -> Widgets screen. It's tempting to add a sign-post to this title along the lines of...

Remove widget by moving it to the inactive widgets list: your widget settings/content will be preserved. Inactive widgets are managed via the Widgets page in your dashboard.

...but I'm concerned about the length of the text.

A 500 millisecond debounce has been added to the doSearch method.

Note: See TracTickets for help on using tickets.