Accessibility Issue: Missing Skip Link for Main Content
WCAG Level: A
Severity: Medium
Category: Skip Links & Navigation
Issue Description
The application lacks a "Skip to main content" link, which is essential for keyboard users and screen reader users to bypass repetitive navigation elements and jump directly to the main content area.
User Impact
- Affected Users: Keyboard-only users, screen reader users
- Severity: Users must tab through the entire navigation menu on every page before reaching the main content, significantly degrading the user experience
Violations Found
File: src/app/app.component.html
Lines: 1-36
<div fxLayout="column" id="rtl-container" class="rtl-container medium" [ngClass]="[selNode.settings.themeColor | lowercase, selNode.settings.themeMode | lowercase]">
<mat-toolbar fxLayout="row" fxLayoutAlign="space-between center" class="bg-primary rtl-top-toolbar">
<!-- No skip link present before navigation -->
Issue: No skip link exists to allow users to bypass the toolbar and navigation menu.
Recommended Fix
<div fxLayout="column" id="rtl-container" class="rtl-container medium" [ngClass]="[selNode.settings.themeColor | lowercase, selNode.settings.themeMode | lowercase]">
<!-- Skip link for keyboard/screen reader users -->
<a href="#main-content" class="skip-link">Skip to main content</a>
<mat-toolbar fxLayout="row" fxLayoutAlign="space-between center" class="bg-primary rtl-top-toolbar">
...
</mat-toolbar>
...
<mat-sidenav-content #sideNavContent [perfectScrollbar]>
<div id="main-content" class="inner-sidenav-content" fxLayout="column" fxFlex="100" fxLayoutAlign="start stretch" tabindex="-1">
<router-outlet #outlet="outlet" />
</div>
</mat-sidenav-content>
</div>
Add CSS in src/styles.scss or a global stylesheet:
.skip-link {
position: absolute;
top: -40px;
left: 0;
background: #000;
color: #fff;
padding: 8px 16px;
z-index: 9999;
transition: top 0.3s;
&:focus {
top: 0;
}
}
Changes Made:
- Add skip link as first focusable element
- Add
id="main-content" to main content area
- Add
tabindex="-1" to main content for programmatic focus
- Style skip link to be visually hidden until focused
Testing Instructions
- Load any page in the application
- Press Tab key - skip link should appear
- Press Enter on skip link - focus should move to main content
- Test with screen reader (NVDA/VoiceOver)
Resources
Acceptance Criteria
Accessibility Issue: Missing Skip Link for Main Content
WCAG Level: A
Severity: Medium
Category: Skip Links & Navigation
Issue Description
The application lacks a "Skip to main content" link, which is essential for keyboard users and screen reader users to bypass repetitive navigation elements and jump directly to the main content area.
User Impact
Violations Found
File:
src/app/app.component.htmlLines: 1-36
Issue: No skip link exists to allow users to bypass the toolbar and navigation menu.
Recommended Fix
Add CSS in
src/styles.scssor a global stylesheet:Changes Made:
id="main-content"to main content areatabindex="-1"to main content for programmatic focusTesting Instructions
Resources
Acceptance Criteria