Make WordPress Core

Opened 4 years ago

Last modified 40 hours ago

#23328 assigned enhancement

While editing widgets in accessibility mode the position can be indicated by widget titles instead of numbers

Reported by: mark-k Owned by: afercia
Milestone: Future Release Priority: normal
Severity: normal Version:
Component: Widgets Keywords: has-patch has-screenshots
Focuses: ui, accessibility, administration Cc:


Guess it title says it all. Right now you need to figure out the position you want the widget to be at and try remember it while editing the widget.

I suggest to change the text text of the position column header from "position" to "position after" and use labels in the drop down

1 => "top"

2 => top widget title

3 => second widget title


Attachments (5)

23328.patch (3.5 KB) - added by afercia 12 months ago.
23328.2.patch (3.6 KB) - added by afercia 6 months ago.
23328.3.patch (5.7 KB) - added by Mte90 6 months ago.
fix also #36772
23328.diff (5.8 KB) - added by afercia 3 weeks ago.
23328.2.diff (5.9 KB) - added by Mte90 45 hours ago.

Download all attachments as: .zip

Change History (29)

#1 @_Redd
4 years ago

Hi mark-k, you may be interested in a related development here: #14045

Last edited 4 years ago by SergeyBiryukov (previous) (diff)

#2 @chriscct7
18 months ago

  • Focuses accessibility administration added
  • Keywords needs-patch added

#3 @afercia
12 months ago

  • Focuses ui added

Not all users know this alternate mode so basically we're speaking about this, see in the screenshot below:


This alternate screen can be enabled toggling the link "Enable/Disable accessibility mode" in the Screen Options. When reordering the widget position the select shows just numbers. It's difficult to remember the actual widgets position in each sidebar.

By the way, not all widgets have "titles" to show, several instances of the same widgets can be used on the sidebars, etc. Widgets do always have a widget type "name" though and we could at least add the widget type name. Additionally, the selects the edited widget is not assigned to, should have an empty, available, select option with some proper text, e.g. "Available position".

This screen could receive some UI tweaking too, for example I don't see any reason why the content should be centered, unless I'm missing something.

12 months ago

#4 @afercia
12 months ago

  • Keywords has-patch has-screenshots added; needs-patch removed

A very fist pass, to get something like in the screenshot below. Any improvements and patches welcome :)

Couple of notes:

  • the option text should be shorter
  • noticed there's no "Cancel" button to cancel editing and go back to the Widgets screen


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

6 months ago

#6 @afercia
6 months ago

  • Milestone changed from Awaiting Review to 4.6
  • Owner set to afercia
  • Status changed from new to assigned

6 months ago

#7 @afercia
6 months ago

Refreshed patch, coding standards, better variable names. Would appreciate a review.

#8 @afercia
6 months ago

Related: #36772. Needs to take care of the case of a widget from a disabled plugin that still has its "position" in the sidebar.


6 months ago

fix also #36772

#9 @Mte90
6 months ago

  • Keywords dev-feedback added

Respect to the patch of @afercia contain:

  • In the select of the widget for the area if the widget not exist anymore (because remove like a plugin), that position is removed from the ui (added a new loop to add an empty option field)
  • On the save of the widgets of that sidebar now there is a check to detect if that widget is registered, in case it is removed from the db so in the next editing of that sidebar this problem don't happen again (like for the classic editing with drag & drop)

With this implementation fix also the #36772.

This ticket was mentioned in Slack in #core by chriscct7. View the logs.

5 months ago

#11 @chriscct7
5 months ago

  • Milestone changed from 4.6 to Future Release

Punting per discussion

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

5 weeks ago

#13 @rianrietveld
5 weeks ago

  • Milestone changed from Future Release to 4.7

#14 @jorbin
4 weeks ago

  • Keywords needs-refresh added

The patch needs to be refreshed to follow the coding standards and also needs some additional testing with various AT.

#15 @afercia
4 weeks ago

In addition to some coding standards, there are some edge cases to check. While testing a bit, noticed there are cases where you can get more than one available empty position, see in the screenshot below:


It seems to me this happens because some registered widgets have a hyphen in their name, for example recent-comments-1, recent-posts-1 so the patch fails when trying to get the widgets base id. I guess this is the reason why a few line below the base id is built first exploding in "pieces" the widget id and then re-adding the pieces together after removing the last piece.

Noticed also some widgets "disappearing" from their sidebar box, I guess because of the same issue, but I'd greatly appreciate some more eyes on the patch :)

3 weeks ago

#16 @afercia
3 weeks ago

  • Keywords needs-refresh removed

Refreshed patch:

  • some coding standards
  • account for widgets IDs with a hyphen when getting the base ID

I'd really appreciate a couple more things here:

  • more meaningful variable names (though this could imply some refactoring)
  • a complete review :)

This ticket was mentioned in Slack in #core by jeffpaul. View the logs.

2 weeks ago

This ticket was mentioned in Slack in #core by desrosj. View the logs.

10 days ago

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

10 days ago

This ticket was mentioned in Slack in #core by jeffpaul. View the logs.

7 days ago

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

3 days ago

#22 @afercia
3 days ago

  • Keywords needs-refresh added; dev-feedback removed
  • Milestone changed from 4.7 to Future Release

Just tested again and this still needs to take into account the case of a widget from a disabled plugin that still has its "position" in the sidebar. To reproduce, activate a plugin that provides a widget, for example "Monster Widget" or the "Link Manager" plugin. Then add its widget to a sidebar, deactivate the plugin, and the sidebar will have an additional, empty, position available. Punting for now, if a refreshed patch comes to light in the next couple days please do feel free to move this back in the 4.7. milestone.

45 hours ago

#23 @Mte90
45 hours ago

  • Keywords needs-refresh removed

I added a little check to avoid double available position on the patch with 23328.2.diff

#24 @afercia
40 hours ago

Let's establish a test case:

  • put let's say 3 widgets in a sidebar
  • install https://wordpress.org/plugins/monster-widget/
  • go to the Widgets screen and enable the "accessibility mode"
  • activate the Monster Widget plugin and add its widget as 4th one in the sidebar
  • go back to Plugins and deactivate the Monster Widget plugin
  • go to the Widgets screen again and edit one of the 3 widgets
  • you will see there's a 4th available, empty, position that shouldn't be there
Note: See TracTickets for help on using tickets.