Maps4HTML / MapML.js

A custom <mapml-viewer> and <layer-> element suite
https://maps4html.org/MapML.js/
Other
57 stars 16 forks source link

Tracking upstream accessibility issues #247

Open Malvoz opened 3 years ago

Malvoz commented 3 years ago

Using code from Leaflet (and plugins) means this map component is sometimes inheriting accessibility issues.

We do have comments inline in code where fixes have been made, sometimes with links for upstream issues. Collecting them here in one spot helps get an overview of the state of accessibility in this component. This issue is to track upstream issues for discussion/fixes.

🔗 Map component

🔗 Controls in general

🔗 Zoom controls

🔗 Layer control

🔗 Markers

🔗 Popups

🔗 Context menu

🔗 Tooltips

prushforth commented 3 years ago

Regarding:

Should be a programmatically identifiable element. Fixed in 7c86ddc. Upstream: Leaflet/Leaflet#7193.

Shouldn't this be on the mapml-viewer / map element? The leaflet-container is in shadow DOM.

Malvoz commented 3 years ago

Shouldn't this be on the mapml-viewer / map element?

The leaflet container has tabindex=0 so giving that element the accessible name means it can be announced to the user as it is focused when sequentially navigated to.

prushforth commented 3 years ago

I'm just surprised that shadow DOM is traversable by AT, but probably because I am not too familiar with how it works and how it fails.

Malvoz commented 3 years ago

@prushforth ATs construct an accessibility tree from the rendered DOM (and may be affected by CSS, e.g. display: none would hide the element and all descendants from the accessibility tree).

I've updated the list btw!