nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
Other
2.08k stars 626 forks source link

Implementation of aria-details with multiple IDs? #13795

Open brennanyoung opened 2 years ago

brennanyoung commented 2 years ago

Forthcoming changes to ARIA

The current draft ARIA spec looks set to introduce multiple IDs as a possible value for aria-details. Has there been any discussion about how NVDA might handle this feature? I'm especially interested in how one (out of many) may be "chosen", what kind of interaction would be offered by NVDA to do this.

Describe the solution you'd like

It's been suggested that multiple IDs in aria-details might be a viable way to construct the choice boxes in browsable flowcharts. See https://github.com/w3c/aria/issues/630

Describe alternatives you've considered

Alternatives (for a flowchart, at least) are to use operable elements such as buttons or the listbox and option roles. These can be made to work, but the whole point is to "browse" the content, not operate it. It's not really interactive.

Additional context

Chicken and egg problem. We can't test whether the spec is useful unless there's and implementation in at least one AT. But that wont happen unless there's a spec. How does NVACCESS usually handle this problem?

Adriani90 commented 8 months ago

@brennanyoung as documented in that w3c discussion, it is probably not the best way to navigate flow charts via aria details ids. Is there any discussion on implementing a separate semantic diagram role and kind of displaying diagrams in a grid format? I don't know if this is technically possible but this should be something like math equations which have also their own atributes.

brennanyoung commented 7 months ago

Graphics ARIA is a thing. It's tiny, but a fairly good spec, which works well with SVG. The main shortcoming is the lack of a mechanism to express connections between parts (basically, the exact semantic promised by aria-flowto, but delivered by no-one, except an embryonic implementation in JAWS)

An earlier proposal (not standard) suggests several additional and useful semantics.

I have had a good look at ARIA's grid, and I don't believe a grid format is appropriate for the kind of diagrams I am interested in. I am looking for a reliable way to express topological, rather than spatial relationships. e.g. navigation should be next/previous or before/after rather than left/right/up/down. Connecting lines are often bent, and often lead to destinations which are spatially distant from their point of origin. Grid fails on both counts.

But we are drifting away from the original topic. Ignoring flowcharts for a moment, the spec certainly indicates that aria-details will support an ID list, and I am keen to discuss how NVDA may present such content.