Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve "Visibility" and "Publish" labels in Post Settings #470

Closed
afercia opened this issue Apr 20, 2017 · 78 comments
Closed

Improve "Visibility" and "Publish" labels in Post Settings #470

afercia opened this issue Apr 20, 2017 · 78 comments
Labels
[Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). [Status] In Progress Tracking issues with work in progress [Type] Copy Issues or PRs that need copy editing assistance

Comments

@afercia
Copy link
Contributor

afercia commented Apr 20, 2017

Example:

buttons links meaningful

The "Public" and "Immediately" controls in this example don't reflect the available action, instead they reflect the current state of the underlying option. I'd say this is a bit confusing also visually. Additionally, when read out of context, users won't have a clue what, for example, "Immediately" relates to.

UI controls should always be meaningful. Looking at the controls in the current WordPress Publish box, the state and the action are separated and the "Edit" controls have an expanded screen-reader-text. Theres a good reason for that. The current design implements what I'd consider without doubts an accessibility regression. Note: this could be implemented also with aria-label.

@afercia afercia added the [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). label Apr 20, 2017
@jasmussen
Copy link
Contributor

✨ Another great ticket. I will possibly ping you again as this gets implemented.

@joyously
Copy link

It's the Pending Review one that makes no sense to me. (I can't ever tell if those "switches" are on or off, even with a color.)

@afercia
Copy link
Contributor Author

afercia commented Apr 21, 2017

@joyously right, maybe worth a separate issue. Just noting other similar switch toggles have a visible on/off label in other parts of the proposed UI:
switch toggle

@afercia
Copy link
Contributor Author

afercia commented Apr 30, 2017

A quick comparison of the switch toggles and some label/controls from the current mockups. Apart from small design details to define, should the switch toggles always have a visible on/off state indicator? (for a11y: yes).

Also, ideally form labels should not contain links (I know that WP currently does that, but it could be improved).

screen shot 2017-04-30 at 15 54 24

Note: the switch toggles would need some a11y special treatment. It's definitely possible to make them accessible, but I guess this should go in a separate issue.

@afercia
Copy link
Contributor Author

afercia commented Nov 6, 2017

To clarify, ideally the Visibility and Publish button should just identify what they do (the underlying available action):
"Edit Visibility"
"Edit Publish Date"

The visual presentation of the current settings value should be separated and not be part of the buttons.

@afercia
Copy link
Contributor Author

afercia commented Dec 11, 2017

To further clarify why this design pattern is far from ideal because control labels containing the setting value or state don't make sense when read out of context:

visibility and publish

@karmatosed karmatosed added [Type] Copy Issues or PRs that need copy editing assistance and removed Design labels Mar 6, 2018
@afercia
Copy link
Contributor Author

afercia commented Mar 24, 2018

I'd also like to point out this metabox name is "Status & Visibility" but then when I open it, there's no label or control that refers to a "Status". While this may be implicitly clear for experienced WordPress users, I wonder new users wouldn't have a clue what the "status" references in the metabox name is.

Quick Classic editor / Gutenberg comparison:

status and visibility settings comparison

@afercia
Copy link
Contributor Author

afercia commented May 5, 2018

About the "Visibility" and "Publish" buttons (which actually are labeled with the value of the options) I'd also recommend to have a look at the testing session by @sinabahram recorded by @joedolson at CSUN 2018, starting form minute 8:00 https://youtu.be/qpzyiL7n__0?t=8m and also published on https://make.wordpress.org/accessibility/2018/03/28/accessibility-of-gutenberg-the-state-of-play/

Why we can't just label the button that is now "Public" as the Visibility button with its value set to "Public"?

"Publish" is weird to me, it seems like an action but it's just text ...

To me, this just confirms the confusion users experience with these buttons. Again, they go against one fundamental web design principle: UI controls should be labeled with the name of the underlying action, not with the current value of the underlying setting.

@sinabahram
Copy link

sinabahram commented May 5, 2018 via email

@afercia
Copy link
Contributor Author

afercia commented May 5, 2018

@sinabahram thanks so much. Yep we could try to do both, if there's some consensus from the Gutenberg project leads. In the current WordPress editor, these two bits of information are separated and they use some plain text and a button, for example:

text: Visibility: Public
button: Edit visibility

Not saying that's ideal, it requires a bit of exploration but hopefully it's a bit clearer.

In Gutenberg I'd suggest to try something like:

button: Edit visibility: Public

and

button: Edit publish date: May 2, 2018 3:53 pm

or something along those lines.

I'd greatly appreciate some help on an important issue you've noticed during your testing session: JAWS doesn't read out the value of the editable fields in the post content. I've created a specific GitHub issue for that but haven't found a solution yet (insert disappointed emoji here): #6002
Will ping you on that issue, thanks!

@sinabahram
Copy link

sinabahram commented May 5, 2018 via email

@folletto
Copy link
Contributor

folletto commented May 7, 2018

I've done some brainstorming with @afercia to come up with a solution here... we found one that while doesn't reach the ideal state we'd love to have, it should still be a solid improvement on what is happening now:

screen shot 2018-05-07 at 19 37 14

This approach works by changing the visual slightly, and attaching a <label for="">Visibility <div>Public</div></label> with the for target being the "Change" button. The outcome is that "Visibility: public" is being spoken instead of the button content.

The benefit of this approach are:

  1. Works with screen readers, in a way similar to the other controls (with dropdowns) in the same page
  2. It adds a much needed label to the value visualized, providing much needed context.
  3. It makes the "Change" action explicit for everyone.
  4. Bonus: the label is clickable too, making a larger tappable area useful to both desktop and mobile.

The remaining issues this approach wouldn't solve are that basically might be even better if "Change visibility" was spelled out entirely, instead of relying on aria-expanded to hint at the action.

Yet, should be an improvement.

Thoughts?

@jasmussen
Copy link
Contributor

That seems good! Is there space so visibility v public can stand on one line, or wrap if it needs to for translations?

@folletto
Copy link
Contributor

folletto commented May 8, 2018

If it was only for "Visibility" it might have been possible. However, I think it would be odd to have "Visibility" on one line, and "Publish" on two (note: in the mockup I changed only "Visibility"). For symmetry, and also to avoid potential issue with text going too long in translations, I think both should go on two lines.

@anevins12
Copy link
Contributor

anevins12 commented May 30, 2018

Sorry long thread and I apologise in advance if I've misread or duplicated someone's response.
Looking at this from a conformance point of view, are we trying to reach AA? I understand that we should focus on the user experience and real A11y issues, but the W3C have already gone through a lot of the user testing for us and we should be able to say "because this conflicts with the W3C I don't think it'll be a good experience".

So, if we're aiming for WCAG AA compliance, I'm afraid we're not describing the action of buttons or links when using the date (for example) as the textual description.

https://www.w3.org/TR/2016/NOTE-WCAG20-TECHS-20161007/G131

@bemdesign-er
Copy link

Labels should clearly articulate what the control does so users can understand what the expectations are for using that control and possible results of their actions by using that control. This is good for both usability and accessibility. Also consider the use case of a screen-reader - does the label clearly tell the user what the control is and what it does?

@folletto
Copy link
Contributor

folletto commented May 30, 2018

The latest proposal above (#470 (comment)) will speak:

Visibility: Public, collapsed, button

So it both describes the button ("Visibility" → "Identify the purpose of the interface component.") and the content ("Public"), as well as the state ("collapsed") and the type ("button" → "Check that each label makes the component's purpose clear.").

Any reason why you think it doesn't match the requirement?

@afercia
Copy link
Contributor Author

afercia commented May 30, 2018

Any reason why you think it doesn't match the requirement?

Yes: there's no consensus and no progress yet 😄

@danielbachhuber danielbachhuber added this to the WordPress 5.0 milestone Jun 4, 2018
@afercia
Copy link
Contributor Author

afercia commented Jun 22, 2018

Looking again into this, it's a bit more complicated than how it seems for at least two reasons:

  • it's not just about Visibility, it's also about "Publish" and having two "Change" button would be confusing for all user and hard to use for speech recognition software users
  • when users have no permission to edit, there's no button rendered; there's only a text with the Visibility state, so also the label should be rendered conditionally...

@tofumatt tofumatt changed the title Controls labels should be meaningful even when read out of context Improve "Visibility" and "Publish" labels in Post Settings Oct 23, 2018
@tofumatt
Copy link
Member

@mtias wanted me to check if this is still an issue and what's actionable here.

The issue is still valid because the label for the current state is also a button that opens the visibility settings (for "Public") and a date picker (for "Immediately").

I think the most accessible version of this (and possibly the easiest to implement) is doing what the old WP-Admin did: having the current status and an "edit"/"change" button next to the status to change it.

Alternatively we could label the current links to have an off-screen, for screenreaders, bit of text that contextualised things. The text could be, for the datepicker: <span class="screen-reader>Date to publish:</span> $DATE <span class="screen-reader>(Click to change)</span>

That could work but I think it's a bit more awkward for users and to code. I think putting the change buttons next to the current state would be best, visually using what @folletto mocked up.

@afercia
Copy link
Contributor Author

afercia commented Sep 6, 2020

Seems there's finally consensus on the last proposal, see #470 (comment) and it would be great to consider the adjustments proposed in #470 (comment).

This issue is waiting to be solved since almost 3 years and a half. It would be great to help it move on 🙂 Milestoning to WordPress 5.6 for visibility.

ZebulanStanphill added a commit that referenced this issue Sep 8, 2020
ZebulanStanphill added a commit that referenced this issue Sep 15, 2020
@tellthemachines tellthemachines removed this from the WordPress 5.6 milestone Sep 16, 2020
@ZebulanStanphill ZebulanStanphill added [Status] In Progress Tracking issues with work in progress and removed Needs Dev Ready for, and needs developer efforts labels Sep 16, 2020
@ZebulanStanphill
Copy link
Member

ZebulanStanphill commented Sep 16, 2020

I've created #25170 to implement accordion summaries that don't mess up the toggle label semantics. If it could be merged alongside #24024, this issue would finally be resolved.

@gwwar
Copy link
Contributor

gwwar commented Feb 2, 2021

Hi @ZebulanStanphill are there any updates for this one? We're checking in as part of a triage session in #core-editor

@ZebulanStanphill
Copy link
Member

@gwwar

#25170 is blocked by a deep design/accessibility conflict. Trying to add a summary to an accordion is tough since the <button> to open the accordion has to be inside the <h_> element, and putting a summary inside the heading is semantically incorrect and confusing for screen readers. But if the summary isn't there, then it's difficult to make it clickable. But if the summary doesn't make sense inside the button, then why have it be clickable in the first place?

I get the feeling that perhaps the very idea of trying to fit a summary into an accordion header is fundamentally flawed. If so, we have to find a different way of displaying the current post visibility/status. Not sure how to proceed there.

#24024 is waiting for a review and for #24079 to be merged first... and that PR is also waiting for a review.

@joedolson
Copy link
Contributor

Summary of changes I can see since this was last dealt with:

  1. The 'Status and Visibility' panel is now called 'Summary'.
  2. The controls to change visibility and status have not changed their visible labels, but have an aria-label with more information: e.g. "Select visibility: Public"; "Change date: Immediately". While I might quibble over the exact wording here, it is better.
  3. The alignment of the controls has changed, so they now have better proximity to their current status.
  4. Pending Review and other toggle features now use a standard checkbox.

Overall, this has improved; but more importantly, much of the discussion in this issue is now obsolete due to the changes in the underlying system. Perhaps this issue should be closed and the remaining concerns should be opened as new issues? This one is so long and out of date that I'm not sure it's helpful.

Appreciate your thoughts on that, @afercia.

@jordesign
Copy link
Contributor

Overall, this has improved; but more importantly, much of the discussion in this issue is now obsolete due to the changes in the underlying system. Perhaps this issue should be closed and the remaining concerns should be opened as new issues? This one is so long and out of date that I'm not sure it's helpful.

I'd second this opinion. It's also possible/likely that Phase 3 of Gutenberg - covering collaboration and editorial flows will need to address items in this panel - so it would be great to revisit this and open a new issue with the still-relevant details.

@afercia - If you have no objection to revisiting this in a new issue - I'll close it out in a week.

@afercia
Copy link
Contributor Author

afercia commented Jul 10, 2023

@joedolson @jordesign thanks for the ping.
It is true that many things have changed and most of the discussion on this issue is now obsolete.
The general principle still stands though: name controls based on what they do, not on the selected value.
This seems to be something that designers in this project still struggle to understand and it's still a major accessibility barrier, besides being less-than-ideal design.

I'd like to also mention that now the visible text and the actual accessible name mismatch so that issuing a voice command for speech recognition software will fail.

I'll create a follow-up so and close this one.

For history: examples of the current situation as of July 10th 2023 (6 years after this issue was created):

Visibility button: 
Visible text: Public 
Accessible name: Select visibility: Public

Publish button: 
Visible text: June 26 12:37 pm
Accessible name: Change date: June 26 12:37 pm

or:

Visible text: Immediately
Accessible name: Change date: Immediately

Template button:
Visible text: Single Posts 
Accessible name: Select template: Single Posts 

URL button:
Visible text: localhost:8889/2023/06/a-simple-post/
Accessible name: Change URL: localhost:8889/2023/06/a-simple-post/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). [Status] In Progress Tracking issues with work in progress [Type] Copy Issues or PRs that need copy editing assistance
Projects
None yet
Development

No branches or pull requests