Altinn / Altinn/app-frontend-react

Improve accessibility of navigation menu when navigation is disabled

Open
#4,120 6 comments 0 reactions 0 assignees View on GitHub
area/accessibility squad/utforming status/triage ux
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.

Image

Contributor guide

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.