This statement describes what is built into the site today. It has not been reviewed by an accessibility professional and no independent audit has been carried out. Have a qualified professional review it, and ideally test the site, before it is published as a formal statement. Nothing here is legal advice.
Our position, stated honestly
This site was built toward WCAG 2.1 best practice. It has not been independently audited, so we do not claim conformance with WCAG at any level and we do not claim ADA compliance. Those are claims that need testing behind them, and until testing happens, saying them would be dishonest.
What we can do is tell you exactly what was built in, so you know what to expect before you land on a page.
Structure and navigation
Every page uses real landmarks: a header with the primary navigation, a single main region holding the page content, and a footer. Screen reader users can jump between them rather than reading through the header on every page.
Headings run in order. One h1 per page, then h2 and h3 nested underneath without skipping a level, so a heading list reads as an outline of the page rather than a list of styling decisions.
The first focusable item on every page is a skip link. Press Tab on arrival and it appears in the top left; press Enter and focus moves straight to the main content, past the navigation.
Breadcrumbs sit in a labelled navigation region with the current page marked, so you always have a route back up to the flooring section or the services section.
Keyboard operation
The site is built to be driven from the keyboard alone. Nothing important is hover only.
- The Flooring and Services menus in the header are real buttons with
aria-expandedreflecting their state. They open on focus, close when focus leaves the panel, and close on Escape with focus returned to the button that opened them. - The mobile menu button also carries
aria-expanded, and Escape closes the drawer. - The material selector on the home page is a tablist. Arrow Up, Down, Left and Right move between the tabs, and each tab is tied to its panel through
aria-controlsandaria-labelledbywitharia-selectedkept in sync. - The before and after floor comparison is exposed as a slider with a label, minimum, maximum and a live current value. Focus it and use Left and Right arrows to move the split in steps, or Home and End to jump to either extreme. It never requires a drag.
- The estimate form's step controls are ordinary buttons in the tab order, not custom widgets.
There is a two pixel oak outline with a three pixel offset on every focused control, applied through :focus-visible. Focus styling is never removed anywhere in the stylesheet, so you can always see where you are.
Motion and animation
This site has a lot of movement in its default state. All of it is optional.
If your operating system is set to reduce motion, the browser reports that and the site reads it in both the stylesheet and the scripts. With the setting on:
- The opening loader is removed entirely rather than animated away.
- The custom cursor is switched off and your normal pointer stays.
- The home page hero build sequence does not run. The hero arrives assembled.
- Smooth scroll hijacking is disabled, so scrolling behaves the way your browser and your input device intend.
- Scroll reveal effects, wipes and clip path transitions resolve to their finished state immediately, so no content is left hidden.
- Animation and transition durations across the stylesheet are collapsed to effectively zero.
You turn this on in your own system settings, not on the site. On macOS it is Reduce Motion under Accessibility Display, on Windows it is Show animations in Windows under Visual Effects, and both iOS and Android have the same control.
Forms
Every field on the estimate form has a real label element tied to its input by id, so clicking the label focuses the field and a screen reader announces it. Required fields are marked in the label text, not by colour alone.
Each step of the form is a fieldset with a legend that states the question being asked, and helper text sits alongside the fields it explains. Validation uses the browser's own mechanism, which means error messages come through the same way you are used to everywhere else rather than as a custom widget we invented.
The result of a submission is written into a status region marked role="status" with aria-live="polite", so success and failure are announced rather than only shown.
The form does contain one hidden trap field named Company, used to catch automated spam. It is hidden from view and from assistive technology. If an aggressive autofill setup completes it anyway, the submission will be silently dropped, and phoning is then the reliable route.
Images, colour and text
Decorative textures, plank patterns and background shapes are marked aria-hidden so they are not announced. Images that carry meaning, including both halves of the before and after comparison, have text alternatives describing what is shown.
The palette is deliberately narrow: near white and silver text on a near black base, with oak used only as an accent. Those pairings were chosen from the brand palette for contrast rather than for decoration, and body text is set at just over seventeen pixels with generous line height. Colour is never the only way information is conveyed. The current navigation item, for instance, carries aria-current as well as a visual marker.
Text scales with your browser's zoom and text size settings rather than being locked to a fixed pixel grid.
What we have not verified
Being straight about the gaps matters more than a badge.
| Area | Status |
|---|---|
| Independent accessibility audit | Not carried out. |
| Screen reader testing across readers and browsers | Not formally tested and documented. |
| Automated contrast checking on every combination | Not documented across every component state. |
| Google Translate widget in the footer | A third-party control. Its markup is Google's, not ours. |
| Third-party scripts from a content delivery network | Outside our control, though the site stays readable if they fail to load. |
Tell us if something blocks you
If any part of this site stops you doing what you came to do, we want to hear it. A specific report is worth far more than a general one, so if you can, include the page address, what you were trying to do, the browser and operating system you were using, and any assistive technology involved.
Send accessibility reports to Add the email address or phone number for accessibility reports.
If a page is in your way right now, contact us directly instead of fighting with it. We will take your project details over the phone and nothing is lost by skipping the form. Every route to reach us is listed on the contact page, and the privacy policy explains what happens to whatever you send.