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>
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
## MODIFIED 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 `h1` element MUST be present
|
||||
|
||||
#### Scenario: Landmarks are present
|
||||
|
||||
- **WHEN** any public page is rendered
|
||||
- **THEN** `header`, `main`, `nav` and `footer` landmarks MUST be present
|
||||
|
||||
#### Scenario: Content images expose alt text
|
||||
|
||||
- **WHEN** a page renders a cover or gallery image
|
||||
- **THEN** the `alt` attribute 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-expanded` state
|
||||
|
||||
### 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
|
||||
Reference in New Issue
Block a user