Trust Center
Accessibility conformance
Accessibility Conformance Report (ACR) in VPAT® 2.5 format. Conformance is tested with axe-core in CI and manually validated with VoiceOver and NVDA. Status is stated honestly per criterion.
Product information
- Product name
- winstonandmiller.com website
- Product version
- Sprint isso-oct10 (October 2026)
- ACR version
- VPAT® 2.5
- Evaluation methods
- axe-core 4.x (automated, CI); manual — VoiceOver + Safari on macOS 15; NVDA 2024.x + Chrome on Windows 11
- Report date
- October 2026
- Contact
- jessica@winstonandmiller.com
Testing methodology
Automated — axe-core in CI
Every CI run executes a Playwright test suite with @axe-core/playwright against all public pages. Zero critical or serious violations are required to pass. Results are logged per run and archived.
Manual — VoiceOver on Safari (macOS)
Protocol: enable VoiceOver (⌘F5), navigate each page with Tab (interactive elements) and VO+Right Arrow (linear reading). Verify: all interactive elements announce their name and role; form errors are read on submission; landmark regions are announced on entry; page title is read on load.
Manual — NVDA on Chrome (Windows)
Protocol: launch NVDA with Insert+Q to exit, navigate with Tab and F6 (landmarks), H (headings), and K (links). Verify: form labels, error announcements, live region updates, and that decorative images are not announced.
WCAG 2.2 / Section 508 per-criterion conformance
Conformance levels: Supports — fully meets; Partially Supports — partially meets; Does Not Support — does not meet; Not Applicable — criterion does not apply to this product.
| Criterion | Title | Level | Conformance | Remarks |
|---|---|---|---|---|
| 1.1.1 | Non-text Content | A | Supports | All images have descriptive alt text or are marked decorative (alt=""). Icons use aria-hidden="true" with adjacent visible labels or aria-label. |
| 1.2.1 | Audio-only and Video-only (Prerecorded) | A | Not Applicable | No audio-only or video-only content is present on the site. |
| 1.2.2 | Captions (Prerecorded) | A | Not Applicable | No prerecorded video content is present. |
| 1.2.3 | Audio Description or Media Alternative (Prerecorded) | A | Not Applicable | No prerecorded video content is present. |
| 1.2.4 | Captions (Live) | AA | Not Applicable | No live media content is present. |
| 1.2.5 | Audio Description (Prerecorded) | AA | Not Applicable | No prerecorded video content is present. |
| 1.3.1 | Info and Relationships | A | Supports | Semantic HTML5 landmarks (header, nav, main, footer) used throughout. Lists, tables, and forms use appropriate elements and ARIA roles. |
| 1.3.2 | Meaningful Sequence | A | Supports | DOM order reflects the logical reading order. No CSS reordering that would create a disconnect between visual and programmatic order. |
| 1.3.3 | Sensory Characteristics | A | Supports | Instructions do not rely solely on shape, size, visual location, orientation, or sound. |
| 1.3.4 | Orientation | AA | Supports | Content is not restricted to a single display orientation. |
| 1.3.5 | Identify Input Purpose | AA | Supports | Form inputs on the contact page include autocomplete attributes appropriate to their purpose. |
| 1.4.1 | Use of Color | A | Supports | Color is not the sole means of conveying information. Status indicators include text labels in addition to color. |
| 1.4.2 | Audio Control | A | Not Applicable | No audio content that plays automatically. |
| 1.4.3 | Contrast (Minimum) | AA | Supports | Body text maintains a minimum 8.5:1 contrast ratio against background in all themes. Metadata text meets the 4.5:1 minimum. Contrast is validated in CI via the contrast-validate script. |
| 1.4.4 | Resize Text | AA | Supports | Text scales to 200% without loss of content or functionality. Layout is responsive and reflows at all zoom levels. |
| 1.4.5 | Images of Text | AA | Supports | No images of text are used. All text is rendered as actual text. |
| 1.4.10 | Reflow | AA | Supports | Content reflows to a single column at 320px CSS width without horizontal scrolling or loss of content. |
| 1.4.11 | Non-text Contrast | AA | Supports | UI component boundaries (buttons, inputs, focus rings) meet the 3:1 contrast ratio against adjacent colors. |
| 1.4.12 | Text Spacing | AA | Supports | No loss of content or functionality when letter, word, or paragraph spacing is overridden per the criterion's test conditions. |
| 1.4.13 | Content on Hover or Focus | AA | Supports | Tooltip-style content is hoverable, dismissable, and persistent. |
| 2.1.1 | Keyboard | A | Supports | All interactive elements are reachable and operable via keyboard. No keyboard traps. Custom interactive components (details/summary, modals) are keyboard operable. |
| 2.1.2 | No Keyboard Trap | A | Supports | Focus moves forward and backward through all interactive elements without becoming trapped. |
| 2.1.4 | Character Key Shortcuts | A | Not Applicable | No single-character key shortcuts are implemented. |
| 2.2.1 | Timing Adjustable | A | Not Applicable | No time limits are imposed on interactions. |
| 2.2.2 | Pause, Stop, Hide | A | Supports | No auto-updating content, blinking, or moving elements are present. |
| 2.3.1 | Three Flashes or Below Threshold | A | Supports | No content flashes more than three times per second. |
| 2.4.1 | Bypass Blocks | A | Supports | A "Skip to main content" link is the first focusable element on every page. |
| 2.4.2 | Page Titled | A | Supports | Each page has a unique, descriptive title in the format "Page Name | Winston & Miller". |
| 2.4.3 | Focus Order | A | Supports | Focus order follows a logical sequence consistent with content meaning. |
| 2.4.4 | Link Purpose (In Context) | A | Supports | Link text describes the destination or action. Ambiguous links include screen-reader-only context via aria-label or visually hidden text. |
| 2.4.5 | Multiple Ways | AA | Supports | Site-wide navigation, footer links, and trust section breadcrumbs provide multiple ways to reach each page. |
| 2.4.6 | Headings and Labels | AA | Supports | Headings describe the content of each section. Form labels are explicit. |
| 2.4.7 | Focus Visible | AA | Supports | Focus indicators are visible on all interactive elements with a minimum 3:1 contrast against the unfocused state. |
| 2.4.11 | Focus Not Obscured (Minimum) | AA | Supports | Focused components are not fully obscured by sticky headers or other overlapping content. |
| 2.5.3 | Label in Name | A | Supports | Accessible names for interactive elements contain the visible label text. |
| 2.5.8 | Target Size (Minimum) | AA | Supports | Interactive targets meet the 24×24 CSS pixel minimum. Primary navigation and call-to-action targets meet 44×44px. |
| 3.1.1 | Language of Page | A | Supports | The html element includes lang="en" on every page. |
| 3.1.2 | Language of Parts | AA | Supports | No foreign-language passages are present that require lang attribute markup. |
| 3.2.1 | On Focus | A | Supports | Receiving focus does not trigger unexpected context changes. |
| 3.2.2 | On Input | A | Supports | Changing a form field value does not submit the form or trigger navigation without a submit control. |
| 3.2.3 | Consistent Navigation | AA | Supports | Navigation is in a consistent location and order across all pages. |
| 3.2.4 | Consistent Identification | AA | Supports | Components with the same function are identified consistently across pages. |
| 3.3.1 | Error Identification | A | Supports | Form validation errors are identified in text and associated with the input via aria-describedby. |
| 3.3.2 | Labels or Instructions | A | Supports | All form inputs have visible labels and relevant instructions are provided before the inputs they apply to. |
| 3.3.3 | Error Suggestion | AA | Supports | Where a format is expected (e.g. email), error messages include the expected format. |
| 3.3.4 | Error Prevention (Legal, Financial, Data) | AA | Not Applicable | No legal or financial transactions are performed on the public site. |
| 4.1.1 | Parsing | A | Supports | HTML validates; duplicate IDs are not present. React's server rendering produces well-formed markup. |
| 4.1.2 | Name, Role, Value | A | Supports | All interactive elements expose name, role, and state via native semantics or ARIA attributes. Custom components follow APG patterns. |
| 4.1.3 | Status Messages | AA | Supports | Status messages (form success/error) are announced via aria-live regions without receiving focus. |
Feedback and contact
If you encounter an accessibility barrier on this site, or if any content or functionality is inaccessible to you, contact us at jessica@winstonandmiller.com.
The full ACR in VPAT 2.5 format is available as a standalone document at /docs/accessibility/acr-vpat-2.5.
Related trust resources