Altinn / Altinn/app-frontend-react
Improve accessibility of navigation menu when navigation is disabled
- Dominant language
- TypeScript
- Stars
- 21
- Forks
- 33
- Avg merge
- 6d 23h
- Merged PRs (30d)
- 3
Description
## Description:
Following internal testing of the updated side menu navigation (see related issue #16446), the functionality appears to work as intended. However, there are some accessibility (WCAG/UU) concerns and usability issues related to how navigation states are visually presented.
Slack thread: https://digdir-samarbeid.slack.com/archives/C02EJ9HKQA3/p1775813316488799
Current issues identified:
- Insufficient contrast on “disabled” (greyed-out) menu links, which may not meet accessibility requirements.
- Menu items that appear clickable/active even when they are not, potentially confusing users.
- Hover effects (e.g., underline) applied to links that are not actually interactive.
- Use of a “disabled” state may prevent screen readers from announcing these items, reducing accessibility.
Considerations:
- Completely hiding unavailable steps is not ideal in this context, as the menu is also used to show progress through the form.
- Instead of greying out link text, consider indicating a “locked” state via iconography (e.g., the circle/icon to the left of each item).
- Remove hover effects for non-interactive items to avoid misleading affordances.
- Adjust text color (e.g., closer to standard body text color) to reduce the perception of clickability while maintaining sufficient contrast.
- Ensure that all states are accessible to screen readers and communicated consistently.
Contributor guide
Research direction
Start by reviewing the updated side menu navigation and related issue #16446, then check the listed disabled states against WCAG/UU expectations. Done means unavailable steps remain visible for progress, non-interactive items no longer appear clickable or respond to hover, and their states are communicated consistently to screen readers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- accessibility, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100