Legal
Accessibility
What we are aiming for on this website, what has been built in to get there, how it is tested, the places where it falls short, and the one address to write to if any of it stops you doing something you came here to do.
The standard we are aiming for
We build this site to meet the Web Content Accessibility Guidelines 2.2 at level AA. That is the level most accessibility law around the world points at, and it is the level we hold client work to as well.
Level AA covers the things that decide whether a website is usable rather than merely viewable: text that has enough contrast against what is behind it, a page that can be operated entirely from a keyboard, content that survives being zoomed or narrowed to a phone, structure that a screen reader can navigate, and motion that can be switched off by anyone who needs it off.
We are describing a target and the work done towards it. We are not claiming a certificate, and the honesty note at the top of this page says why.
What this statement covers
It covers devdwell.com, every page on this domain, including this one.
It does not cover:
- Websites we have built for clients. Those live on the client’s own domain and are the client’s own responsibility once handed over, though what we build into them is described further down.
- Third-party services we link to, social platforms, review sites, Webflow’s own website. Their accessibility is theirs.
- Content embedded from a third party on our pages, where we do not control the markup. That is its own section below.
What has been done
Every line below is a decision taken in this build rather than an intention. If any of them turns out not to be true on a page you are using, that is a bug and we want to hear about it.
Structure and semantics
- One h1 per page, and headings that descend in order without skipping a level
- Real landmarks (a banner, a single main region, navigation and a footer), so a screen reader can jump between them
- A skip link as the first tab stop on every page
- Lists marked up as lists, tables with real header cells and a caption, and figures with captions
- Link text that says where it goes rather than “click here”
Keyboard
- Every control reachable and operable with a keyboard alone
- A visible, high-contrast focus ring on every focusable element, never removed
- No keyboard traps, anything that opens can be closed with Escape, and focus goes back where it came from
- Wide tables sit in a focusable scrolling region, so a keyboard can reach the part that scrolls
Colour and contrast
- Body and interface text measured against its own background rather than eyeballed
- The muted grey used for captions was raised because it measured 4.27:1 and failed the 4.5 floor
- The accent colour has a darker variant for small text and a lighter one for dark grounds, so it never carries text at low contrast
- Colour is never the only way something is communicated. There is always a label, a shape or a word as well
Motion
- Every animation on the site is gated behind the operating system’s reduced-motion setting
- With that setting on, the page is simply its finished self: nothing is left hidden, clipped or displaced by an animation that never ran
- Only transform, opacity, clip-path and filter are animated, so nothing shifts the layout as you read it
- Nothing flashes, blinks or auto-plays
Images and media
- Every meaningful image carries alt text describing what it shows and why it is there
- Decorative graphics are hidden from assistive technology rather than given invented descriptions
- Explicit width and height on every image, so nothing jumps as the page loads
- Screenshots are cropped so a client’s own header and logo are never sliced in half
Reading and reflow
- Content reflows to a single column at 320px with no sideways scrolling of the page
- Wide tables scroll inside their own container, never taking the document with them
- Text can be zoomed to 200% without content being lost or overlapping
- Line length is capped at a readable measure rather than running the full width of a monitor
Targets and input
- Interactive targets are at least 44px in their smaller dimension
- Nothing requires a hover, a drag or a precise pointer to use
- Form fields have real labels, not placeholder text pretending to be one
- Errors are described in words next to the field they belong to
Without JavaScript
- The content of every page is complete with scripts disabled
- Reveal animations only hide anything once JavaScript is confirmed to be running, so a failed script can never leave a blank page
- Navigation, links and the contents index all work as plain HTML
How it is tested
Seven checks, run against every page. None of them is a substitute for the other six, and none of them is a substitute for somebody telling us that something does not work for them.
- Keyboard only
- Each page walked from the first tab stop to the last with the mouse unplugged, every control reached, every focus state visible, nothing trapped.
- Screen reader spot checks
- VoiceOver on macOS and iOS, on the pages that carry the most structure. Spot checks rather than a full pass with every reader on every page, and we would rather say so.
- Automated checks
- An automated checker run over each page. It is a floor, not a verdict, automated tools catch a minority of real problems and can be entirely happy with a page nobody can use.
- Contrast measurement
- Every text and background pair measured against the 4.5:1 floor for body text and 3:1 for large text, rather than judged by eye.
- Zoom and reflow
- Every page checked at 320px wide and at 200% zoom, looking for horizontal scrolling, clipped content and overlapping type.
- Reduced motion
- Every page loaded with the operating system preference set, checking that the static page is the finished page.
- Scripts disabled
- Every page loaded with JavaScript off, checking that nothing is missing rather than merely that nothing is broken.
Known limitations
These are the places this site currently falls short, or where we cannot honestly claim to have checked. Writing them down is the part of an accessibility statement that is actually worth something.
- This is a self-assessment
- Nobody independent has audited this site. We believe it meets WCAG 2.2 level AA in most respects and we are not going to claim full conformance on our own say-so, because a statement that overclaims is worse than no statement at all.
- Text inside screenshots
- The case-study screenshots carry alt text describing what the page is and what it does, but the words inside those images are not transcribed in full. If you need to know what a specific screenshot says, ask us and we will tell you.
- Wide tables scroll sideways
- A handful of comparison tables are genuinely too wide for a phone. They scroll inside their own container rather than moving the page, and the container is keyboard-focusable, but scrolling a table on a small screen is still a compromise.
- Motion is controlled by your system
- Animation is switched off by the operating system’s reduced-motion setting rather than by a control on the page. If your device does not offer that setting, there is currently no way to turn motion off from here.
- There is no accessibility toolbar
- There used to be one, and it has been removed. An overlay is a script that repaints the page and offers larger text, higher contrast and reduced motion: three things your operating system and browser already do, for every site, with the settings you have already chosen. What an overlay cannot do is change the markup underneath, so it tends to sit in front of the defects rather than fix them, and it can interfere with the screen reader you already run. We would rather the page be right when it arrives. Text scales with your browser because the type is set in relative units, motion follows your system setting, and the contrast is measured rather than toggled.
- We have not tested every combination
- There are more browser, operating system and assistive technology combinations than any small studio can cover. If yours behaves differently from what is described here, that is genuinely useful to know.
None of these is a reason you should have to put up with something. If one of them is blocking you, write to us and we will find you another way to get what you need while we fix it.
Content we do not control
Some things on a website come from somebody else’s server and arrive with their own markup: review widgets, embedded video, maps, and the web fonts this site loads. We choose them carefully and we test what they produce, but we cannot rewrite what they render.
Where an embed is the only way to get at some piece of information, there is a text alternative on the page or an address you can write to for it. If you find one where there is not, that is an omission rather than a policy, and telling us fixes it.
Accessibility in the sites we build
This page is about our own website, but the same standard applies to what we build for clients. Accessibility is part of the build rather than a line item somebody can decline:
- Semantic structure and correct heading order in every template we build
- Alt text fields in the CMS, so a client’s own team can describe their own images
- Contrast checked against the brand palette during design, not after launch
- Keyboard operability for menus, tabs, sliders and anything else interactive
- Reduced-motion handling built into the animation rather than bolted on afterwards
- A walkthrough at handover, so the people publishing content know what their part of it is
The part that belongs to the client
A site is only as accessible as the content published into it afterwards. Alt text on new images, headings used for structure rather than for size, descriptive link text and readable contrast in anything added later are the client’s to keep up, which is why it is covered in the CMS training at handover rather than assumed.
A formal audit against WCAG 2.2 AA, or a conformance report for a procurement process, is separate work with a specialist involved. If you need one, say so early and we will scope it properly rather than pretend a build alone produces one.
Report a problem
If anything on this site stops you doing what you came here to do (a control you cannot reach, text you cannot read, a page that will not work with your software) tell us. It is the fastest way anything on this page gets better.
If you can, include:
- The address of the page.
- What you were trying to do and what happened instead.
- Your browser and device, and any assistive technology you use, but only if you know it. This is a nice-to-have, not a form to fill in.
What happens next
- A reply within one business day, from a person rather than a ticket number.
- Either a fix, or an explanation of what is involved and when it will land.
- If it cannot be fixed quickly, another way to get the same information or complete the same task in the meantime.
You will never be asked to explain why you need it. We are a 100% remote team and email is the only channel we answer, soinfo@devdwell.com reaches everyone who could do anything about it.
Reviewing this statement
This statement was prepared by Devdwell using our own testing, on the date shown at the top of the page and repeated here: .
It gets revisited whenever the site changes materially, and at least once a year regardless. When something in the “known limitations” list is fixed, it comes off the list rather than staying there to make the page look thorough.