Problem/Motivation

The Paragraph widget is a complex widget. With recent progress, many issues came up that need extensive accessibility review. Many aspects also related to core patterns - possibly with a core issue first.

Let's collect the issues here:

Proposed resolution

Do proper accessibility review, check semantics and ARIA standards, provide definitios, implement.
Warning: Some aspects are challenging and need expert know-how. ;-)

Remaining tasks

Collect issues, review, ...

User interface changes

To be identified, support assistive technologies and all kinds of interaction device types, minimal visual changes expected.

Comments

miro_dietiker created an issue. See original summary.

andrewmacpherson’s picture

To be identified, only for assistive technologies, no visual changes expected.

Just a note that this is a bit restrictive, as currently worded.

  1. Accessibility is a broader topic than assistive technology. For example, sighted keyboard-only users will not necessarily be using any assistive technology at all.
  2. Some improvements may need visual changes, for example focus should be indicated visually to meet WCAG 2 SC 2.4.7 Focus Visible
miro_dietiker’s picture

Issue summary: View changes

Yeah you are right. The very quick wording was more a scoped call for accessibility experts and to avoid non-accessibility related UI changes here. Limiting it to assistive technology only was wrong wording. I adapted the summary a bit. Hope it fits better.

mgifford’s picture

I always recommend that folks start with the easy accessibility tools to catch the low hanging fruit.

1) Using something like the Wave Toolbar Extension (which works for FF & Chrome) what errors do you see? There usually are some that these tools bring up. There are of course others, but this one is super simple to get started with.

2) Try to tab through the site without using a mouse. Your browser might need to be configured so that it works, but you should be able to tab between links and jump into form elements and do everything without a mouse or trackpad.

You're probably pretty good if you can do those things. There's way more that is needed for other assistive technology, but I definitely recommend starting here with what the developers and users of this great module can identify.

Automated tools like this might only get you 40% of the way, but it's a good start.

andrewmacpherson’s picture

A big issue is when you edit an entity that has paragraphs, there are dynamic changes to the form, without a page reload. Visually impaired users may be unaware that the form has changed after pressing a button:

Edit an existing node with paragraphs. The paragraph entities are shown as a summary/preview, with an edit/remove dropbutton.

  1. Pressing "edit" makes the paragraph preview get replaced with a paragraph bundle form, and the "edit" control becomes "collapse".
    • Screen reader users should be informed what has happened. A brief Drupal.announce() message will suffice here. Call it in JS after the ajax response. What do we announce? Unsure - maybe use the paragraph bundle and weight? "Edit form now showing for Call-to-action at position 1". Note we are in a tabledrag so match the numbers, say.
    • The dropbutton operations change, and focus is lost. Keyboard users could become lost, confused, or frustrated by this (sighted or not, with assistive tech or not). Ideally focus wants to stay on the dropbutton, but in this case the "edit" control appears to be removed from the DOM, so it's a tricky case. Maybe focus could be programatically moved to the new "collapse" control after the AJAX response? If so do this before making the Drupal.announce() call.
  2. Pressing "collapse" makes the paragraph bundle form get replaced with a paragraph preview, and the "collapse" control becomes "edit". The same problems and solution as pressing the "edit" control.
  3. Using the "remove" control results in it becoming a "confirm removal" button.
    • As above, give focus to the new "confirm removal" control.
    • The fact that additional action is required should be conveyed. We don't want to leave a screen reader user with the impression that a paragraph has been removed, when in fact it hasn't been. I'm unsure what the best approach would be here, but let's say we move focus to the new "confirm removal" control, then Drupal.announce("Confirmation required to remove this Call-to-Action from position 1").
    • But what if you want to cancel this action? A "restore" button is available, but hidden in the dropbutton. I don't think this is very discoverable. At this critical point, I think that "cancel" would be clearer. I'd also avoid hiding it in the dropbutton, because that takes a keyboard user several keypresses to find. Make it visible, and right after the confirm button (just one tab press away).
mgifford’s picture

@andrewmacpherson - absolutely! I do appreciate you spelling out the next steps, particularly with Drupal.announce().

@miro_dietiker - do you think you can break these up into child items and start working on them.

Ultimately I think we should pick off the issues we know need to be done before we wade into the more complicated issues (like cancelling an action).

Nobody wants to get stuck, but let's try and make sure those issues are hived off away from the ones that should be relatively straight forward to identify & fix. We're not needing for perfection, just incremental improvement moving that direction.

miro_dietiker’s picture

Priority: Normal » Major

Thank you all for the feedback here!

Confirm removal is no more present in the new (experimental) widget. We should focus on that widget with improvements and assessments.

IMHO there are 3 key concepts in Paragraphs that need to be well accessible for solid content creation / editing experience. And they all need major improvements, some are highly confusing or completely inaccessable currently when using assistive technology:

  • collapsing and expansion of each paragraph instance
  • the pluggable action button of each paragraph instance
  • the behavior tabs that switches the perspective of editing fields / content / settings per paragraph

I was hoping to create more interest in the accessibility topic with refreshing this topic and enable collaboration. Thus also promoting priority for more visibility and adding to our roadmap goals: #2954487: New Roadmap

I'm very willing to support all efforts that improve accessibility, by defining goals, sharing vision, providing feedback, review patches, testing, providing short feedback cycles, finally committing, but i currently can not push the implementation forward on my own.

That said, yes, let's keep this on a meta level and create dedicated sub-issues that address specific aspects of the widget.
Really looking forward to have a well accessible Paragraphs UI.

miro_dietiker’s picture

And there are accessibility issues with scrolling persistency for regular users as well:
#2901995: Scroll to the right position after edit / collapse

There are many other proposals to simplify the UI that are shifting accessibility issues, like
#2825581: [META] Introduce a sticky header

miro_dietiker’s picture

I fixed keyboard navigatability at #3092762: Unable to access toggle button options using keyboard navigation. - short before commit.

Now the next most annoying problem is loss of focus, requiring the user to tab through the whole form again after any ajax operation such as adding a Paragraph or collapsing / expanding.

miro_dietiker’s picture

Title: [META] Review widget accessibility » [META] Review Paragraphs widget accessibility

A Paragraphs Accessibility / Keyboard test would be interesting as part of a bigger Accessibility push here.

miro_dietiker’s picture

miro_dietiker’s picture

acrollet’s picture

Issue summary: View changes
acrollet’s picture

sokru’s picture

sokru’s picture

Issue summary: View changes
flemaitre’s picture

Hi, I added a new related issue : #3452997