Skip to content

[a11y] Skeleton loaders have no ARIA attributes -- screen reader users get no loading feedback #324

@smirk-dev

Description

@smirk-dev

Problem

When the DevTrack dashboard loads data, skeleton loader components are displayed as placeholders. These skeletons have no ARIA attributes, so assistive technology users (screen reader users) receive zero feedback that the page is loading. When data populates and the skeletons are replaced, there is also no announcement to indicate the content is ready.

This is a standard accessibility gap that affects any user relying on VoiceOver, NVDA, TalkBack, or similar tools.

Steps to Reproduce

  1. Open DevTrack with a screen reader enabled (VoiceOver on macOS or NVDA on Windows)
  2. Navigate to the dashboard while data is loading
  3. The skeleton placeholders render but nothing is announced
  4. When data loads and components replace skeletons, there is no announcement

Expected Behaviour

  • While loading: screen reader announces something like "Loading dashboard data" or similar
  • After load: screen reader announces that content is available

Proposed Fix

  • Add role="status" and aria-label="Loading" to skeleton wrapper components so assistive technology announces the loading state
  • Add aria-live="polite" to the main content container so when widgets load in, the change is announced without being disruptive
  • Ensure skeletons have aria-hidden="true" so the animated placeholder divs themselves are not read out, only the status message is

Scope

This is a purely additive change -- no existing functionality is touched. It only adds ARIA attributes to existing components. No visual changes required.

Testing

Verify with VoiceOver (macOS): open dashboard, hear "Loading" announced on load, hear content announced when data populates.

I am happy to implement this fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions