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

Diagram items should list their relationships for screen reader users #567

Open
7 tasks
heiko-folkerts-msg-david opened this issue Sep 10, 2021 · 9 comments
Open
7 tasks
Labels
a11y backlog Queued in backlog enhancement New feature or request help wanted Extra attention is needed pr welcome We rely on a community contribution to improve this.

Comments

@heiko-folkerts-msg-david
Copy link

heiko-folkerts-msg-david commented Sep 10, 2021

Describe the Problem

For a screen reader user the items of a diagram are listed as snippets of text. The relation between these elements is unknown to them. This could be solved by describing a snippet with its relation to other parts of the diagram, e.g. start event: connected to "get coffee cup". To keep the description hidden (sighted users see the arrows) one could use a hidden paragraph with the description and reference it with the aria-describedby attribute as specified in the ARIA authoring practices.

Steps to reproduce

  1. Turn on a screen reader e.g. NVDA
  2. Let the screen reader read a diagram.
  3. The reader reads all elements in their order in the page but the relationships between them are not read.

Expected Behavior

  • Elements can be focussed with the keyboard/mouse in a screen reader friendly manner
    • System selection is being used for primary element (readers rely on it)
    • If possible, standard shortcuts (arrow keys, TAB, SHIFT+TAB) navigate the graph (readers rely on it)
    • Example: Starting from a BPMN Task I'm able to inspect outgoing connections and follow them
    • Example: Starting from a root or container element, i.e. a BPMN Process or SubProcess, I am able to select / loop through existing graph starts, i.e. BPMN StartEvents and potentially graph ends, i.e. BPMN EndEvents.
  • Screenreader friendly text is serialized with the diagram, extensible in libraries built on top of diagram-js
    • Example: In bpmn-js you may want to serialize the bpmn:Documentation attached to an element so it is being read out along with the element name + type.

A good chunk of additional context on A11y compliant diagram navigation is provided here.


Required by camunda/camunda-modeler#2588

@heiko-folkerts-msg-david heiko-folkerts-msg-david added the bug Something isn't working label Sep 10, 2021
@nikku nikku added a11y help wanted Extra attention is needed labels Sep 13, 2021
@nikku
Copy link
Member

nikku commented Sep 13, 2021

Thanks for opening this issue. I've marked it as a11y.

Would a simple solution "connected to {XYZ}" be sufficient? I imagine that connections transport semantics that would need to be properly reflected in the description.

@nikku
Copy link
Member

nikku commented Sep 13, 2021

See also a11y and SVG.

@heiko-folkerts-msg-david
Copy link
Author

heiko-folkerts-msg-david commented Sep 13, 2021 via email

@heiko-folkerts-msg-david
Copy link
Author

heiko-folkerts-msg-david commented Sep 13, 2021 via email

@nikku
Copy link
Member

nikku commented Sep 16, 2021

Happy to take a contribution that improves the situation. It will be a larger contribution though:

  • Elements can be focussed with the keyboard/mouse in a screen reader friendly manner
  • Screenreader friendly text is serialized with the diagram, extensible in libraries built on top of diagram-js
    • Example: In bpmn-js you may want to serialize the bpmn:Documentation attached to an element so it is being read out along with the element name + type.

As these few bullet points show a11y and screen reader support are non-trivial topics in the context of diagrams.

@nikku
Copy link
Member

nikku commented Sep 16, 2021

Moving this issue to backlog.

@nikku nikku added backlog Queued in backlog pr welcome We rely on a community contribution to improve this. enhancement New feature or request and removed bug Something isn't working labels Sep 16, 2021
@nikku
Copy link
Member

nikku commented Sep 16, 2021

Also classifying it as an enhancement. There is nothing broken with our current a11y story, as we did not implement any yet. Hope that makes sense.

@heiko-folkerts-msg-david
Copy link
Author

heiko-folkerts-msg-david commented Sep 17, 2021 via email

@pinussilvestrus
Copy link
Contributor

pinussilvestrus commented Apr 18, 2022

One another report that this one is a needed improvement: #634

/cc @christian-konrad @MaxTru

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a11y backlog Queued in backlog enhancement New feature or request help wanted Extra attention is needed pr welcome We rely on a community contribution to improve this.
Projects
None yet
Development

No branches or pull requests

3 participants