Skip to content
Accessibility

Accessibility statement

Last updated: 28 July 2026

01

The standard, and what this statement is

This site is built to WCAG 2.2 Level AA. That is the standard the work targets and the yardstick the checks below were run against.

It is not a conformance claim. No independent audit has been carried out, so we do not say the site conforms to Level AA: we say what we build to, what we checked ourselves, when we checked it, and what we have not checked at all. A self-assessment described as an audit is worth less than no statement, because it moves the work of finding out onto you.

The assessment was AUTOMATED: the built site's rendered HTML and the source behind it were inspected programmatically on 28 July 2026, across every public page. No person drove a screen reader, no assistive technology was used, and no page was tested by hand. Each finding below is a statement about the markup that ships, which means it can be checked from the outside rather than taken on trust.

02

What the self-assessment found

Met across every public page, as of the date above:

  • Keyboard: The whole site is operable from the keyboard. A skip link is the first thing focus reaches and jumps straight to the main landmark, and a visible focus outline is applied to every link, button, disclosure and focusable element by a single rule, so no component can opt out of it by being written carelessly.
  • The mobile menu: It is a real dialog rather than a panel that happens to be visible: focus moves into it when it opens, Tab stays inside it, Escape closes it, focus returns to the button that opened it, and while it is closed nothing inside it exists to be tabbed into.
  • Images: Every image on the site is decorative and carries an empty alt attribute, so a screen reader passes over it instead of reading out a filename. The logo is a link and carries its own name. There is no image whose meaning is not also in the text beside it.
  • Links and icons: Every link has a name that says where it goes. There is no click here and no bare read more. Icons are drawn as decoration and hidden from assistive technology by default, so where a control is an icon on its own it carries a written name instead, and nothing is announced twice.
  • The contact form: Every control has a real label bound to it, help text and error text are tied to the control they belong to, an invalid field is marked as invalid rather than only turning a colour, and both the errors and the sent confirmation are announced rather than only appearing. The hidden field that catches spam bots is removed from the accessibility tree entirely, so it is never presented to you as a field you failed to fill in.
  • Structure: One first-level heading per page, headings in order with no level skipped, real landmarks for the navigation, the main content and the footer, lists that are announced as lists, and a language set on the document.
  • Motion: Asking your system to reduce motion turns off the animation on this site, all of it. It is a blanket rule covering every element and both pseudo-elements rather than a per-animation opt-in, which is the version that cannot rot as new animation is added.
  • Zoom and reflow: Nothing here caps or disables zoom, so pinch and browser zoom both work. Layout is built on relative sizes and reflows rather than depending on a fixed width.
03

What has not been checked

The part of an accessibility statement that is usually missing, and the reason to trust the part above it:

  • No independent audit: Nobody outside the company has assessed this site. There is no audit report behind this page, no VPAT, and no accessibility conformance report. If your procurement process needs one, say so and we will talk about what it would take rather than send you something that does not exist.
  • Colour contrast is not measured across the palette: Four pairs have been computed from their hex values and published under Learn, in the piece on the design system. That is four pairs, not the palette: the ramp has not been checked token by token, act by act, and state by state, which is the check a Level AA claim would rest on. It is the most common Level AA failure and exactly the kind of thing a self-assessment talks itself into, so no conformance claim is made here. Until the whole ramp is measured, it stays on this list.
  • No screen reader testing: The checks above are of the markup, the roles and the names that ship. The site has not been driven end to end with a screen reader, and reading correct markup is not the same as hearing what it becomes.
  • No testing with disabled users: No user research and no usability testing with disabled participants has been done. That is the evidence that outranks every automated check, and we do not have it.
  • Pages that are not ours: Booking happens on cal.com, on their page rather than an embed on ours. We cannot make a statement about the accessibility of a service we do not build. If it is a barrier for you, email instead: it reaches the same place and gets the same answer.
04

Reporting a barrier

If something here stopped you, tell us: hello@tdacorp.in. The page you were on, what you were trying to do, and what happened instead is plenty. Naming your browser and any assistive technology helps us reproduce it, and is not required.

You will get an acknowledgement from a person, a straight answer on whether it is being fixed, and a rough sense of when. That is an aim rather than a service level agreement, and it is stated the same way for the same reason as the security disclosure policy at /security: promising a fixed response time we have nobody rostered to honour would be the first inaccessible thing on this page.

If you need something on this site in another format to be able to use it, ask. That is a request we can act on directly, not a special case.

05

How this statement is kept true

The date at the top is the date the claims above were last checked against the site that ships. Every one of them is a fact about the markup, so they are re-checked when the markup changes rather than on a calendar, and a check that starts failing moves to the list of what has not been checked instead of quietly staying in the list of what was met.

Two of the checks are automated on every crawl of the built site: exactly one first-level heading per page, and every in-page link pointing at something that actually exists. The rest are reviewed by hand, which is why this statement carries a date rather than a badge.

06

Contact us

Barriers, requests for another format, and anything this statement got wrong go to hello@tdacorp.in