Skip to content

feat(implementation-status): loading UX and accessibility#5297

Closed
marcoscaceres wants to merge 2 commits into
speced:mainfrom
marcoscaceres:feat/baseline-ux
Closed

feat(implementation-status): loading UX and accessibility#5297
marcoscaceres wants to merge 2 commits into
speced:mainfrom
marcoscaceres:feat/baseline-ux

Conversation

@marcoscaceres
Copy link
Copy Markdown
Contributor

Closes #5296

Improves the Baseline implementation status widget with loading animation, accessibility, and saved-document behavior per the agreement in w3c/vibration#63.

Loading animation: 300ms delay (avoids flash on fast loads), subtle opacity pulse (0.35–0.6 range), progressive enhancement via prefers-reduced-motion: no-preference, CLS reservation via min-height.

Accessibility: Dedicated visually-hidden aria-live region with concise summary string for reliable cross-AT announcements. Static "Browser support:" dt label with dynamic status in dd (proper live region scoping). aria-atomic="true" for coherent announcements.

Saved documents: "More info" link becomes "Current browser support" in exported HTML (noun phrase matches spec header style). Loading artifacts and a11y summary span removed from saved output.

Performance: Preconnect hint for browser logo domain. will-change: opacity for compositor promotion.

- Add loading animation with 300ms delay (avoids flash on fast loads),
  narrow opacity pulse (0.35-0.6), and reduced-motion progressive
  enhancement
- Add visually-hidden aria-live summary region for reliable screen
  reader announcements across VoiceOver, NVDA, and JAWS
- Use static "Browser support:" dt label; move dynamic status text
  into dd for proper live region scoping
- Add CLS reservation (min-height: 32px) during loading state
- Add preconnect hint for browser logo domain
- Change "More info" to "Current browser support" in saved documents
  (noun phrase matches spec header style, satisfies WCAG 2.5.3)
- Clean loading artifacts and a11y summary from exported documents

Closes speced#5296
- Register beforesave handler unconditionally (BLOCKER: previously
  skipped on error path, leaking a11y summary span into exports)
- Wrap baseline-appear animation in prefers-reduced-motion media query
- Guard headDlElem.parentElement with null check
- Narrow statusText JSDoc from string|undefined to string (with cast)
@marcoscaceres
Copy link
Copy Markdown
Contributor Author

Moving review iteration to fork (marcoscaceres/respec) to reduce notification noise. Will reopen here as a polished draft once review is complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Baseline widget: loading UX, accessibility, and performance improvements

1 participant