|
| 1 | +# Accessibility Audit |
| 2 | + |
| 3 | +We want AccessMap to be an accessible web site for screen readers and tab navigation. |
| 4 | +At the moment, we are limited by the component toolkit we've adopted, `react-md`, which |
| 5 | +has decent aria-label/accessibility support, but still has significant holes. |
| 6 | + |
| 7 | +The most popular issue on GitHub for the `react-md` repository indicates that it may |
| 8 | +no longer be under particularly active development, so we should consider using a |
| 9 | +different toolkit and/or rolling our own. Wrapping web components could be a nice way |
| 10 | +forward. |
| 11 | + |
| 12 | +## Known issues |
| 13 | + |
| 14 | +### `role="radio"` combined with `aria-pressed` for radio control groups |
| 15 | + |
| 16 | +The profile selection tabs are modeled as a radio control group, and each selection |
| 17 | +has `role="radio"`. Because `react-md` represents the icons for radio buttons using |
| 18 | +their internal `AccessibleFakeInkedButton` component, they come with an inappropriate |
| 19 | +`aria` attribute: `aria-pressed`. |
| 20 | + |
| 21 | +Proposed solution: write our own control group widget and/or switch to a new |
| 22 | +component kit. |
| 23 | + |
| 24 | +### Slider thumbs have no labels, are announced as "button" on screen readers |
| 25 | + |
| 26 | +There is no way to add a label to slider thumbs due to how they are implemented in |
| 27 | +`react-md`. As they have `role="button"`, they get announced as "button", which is |
| 28 | +useless for someone using a screen reader. |
| 29 | + |
| 30 | +### Keyboard navigation of profiles is awkward, lacks feedback, doesn't meet ARIA |
| 31 | + |
| 32 | +Tab navigation should highlight the profiles group and moving left/right with the |
| 33 | +keyboard should change profiles, same as a radio button group. It doesn't. Instead, it |
| 34 | +shows no feedback whatsoever, and the user is expected to hit 'space' to select a |
| 35 | +profile. This is part of `react-md`'s core behavior. |
| 36 | + |
| 37 | +Proposed solution: write our own control group and/or switch to a new component kit. |
0 commit comments