* feat: recreate public frontend with Heritage Editorial identity Replace placeholder visual system with EB Garamond/olive tokens, brand assets, editorial home narrative, São Paulo settings, real testimonials, and regenerated visual baselines. Co-authored-by: Cursor <cursoragent@cursor.com> * docs: archive recreate-public-frontend and sync Heritage Editorial specs Merge delta requirements into main OpenSpec capabilities and move the completed change into the dated archive. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
3.6 KiB
web-accessibility Specification
Purpose
Define automated accessibility checks, semantic structure, keyboard operability, reduced motion, and console hygiene for public routes.
Requirements
Requirement: Public routes have no critical or serious accessibility issues
The system SHALL run automated accessibility checks on the public routes covered by the browser suite (SPEC §6.5, §13.8) after the Heritage Editorial redesign. A critical or serious issue MUST fail the suite.
Scenario: Critical issue blocks the suite
- WHEN the automated accessibility check reports a critical or serious issue on a covered route
- THEN the browser suite MUST fail and report the offending rule and selector
Scenario: Covered routes are checked
- WHEN the accessibility suite runs
- THEN the home, services listing, portfolio listing and case detail MUST each be checked
Requirement: Public pages use accessible semantic structure
Public pages SHALL provide semantic landmarks, exactly one h1 per page, a coherent heading order, alt text on every content image and brand mark, and visible focus on interactive elements (SPEC §6.5).
Scenario: Single h1 per page
- WHEN any public page is rendered
- THEN exactly one
h1element MUST be present
Scenario: Landmarks are present
- WHEN any public page is rendered
- THEN
header,main,navandfooterlandmarks MUST be present
Scenario: Content images expose alt text
- WHEN a page renders a cover or gallery image
- THEN the
altattribute MUST contain the stored alt text
Scenario: Brand mark exposes accessible name
- WHEN the public header brand mark is rendered
- THEN it MUST expose an accessible name identifying Amare Assessoria
Requirement: Public pages are fully keyboard operable
Visitors SHALL be able to reach and activate every interactive element with the keyboard, including the mobile navigation disclosure when visible, with a visible focus indicator and a skip link to the main content.
Scenario: Keyboard reaches the primary CTA
- WHEN a visitor navigates the home with the Tab key
- THEN the primary CTA MUST receive focus with a visible indicator
- AND activating it with the keyboard MUST navigate to the contact route
Scenario: Skip link bypasses navigation
- WHEN a visitor focuses the first element of a public page
- THEN a skip link to the main content MUST be available
Scenario: Mobile menu is keyboard operable
- WHEN the mobile menu button is focused and activated with the keyboard
- THEN the navigation links MUST become reachable by subsequent Tab stops
- AND the button MUST expose the correct
aria-expandedstate
Requirement: Reduced motion preference is honored
The system SHALL suppress non-essential animation and transition when the user agent reports prefers-reduced-motion: reduce, including editorial hover scales and menu transitions introduced by the redesign.
Scenario: Reduced motion disables transitions
- GIVEN the browser reports
prefers-reduced-motion: reduce - WHEN a public page is loaded
- THEN decorative transitions and animations MUST NOT run
Requirement: Public pages emit no console errors
Covered public routes SHALL load without JavaScript console errors in a real browser (SPEC §13.8, §19), including pages that load the mobile navigation script.
Scenario: Console stays clean on covered routes
- WHEN a covered public route is loaded in the browser suite
- THEN the console MUST contain no error-level messages