Skip to content
Iknow

// Iknow

Accessibility conformance.

A working reference page: the status of every WCAG 2.1 Level AA success criterion for this site.

The site is being built toward WCAG 2.1 Level AA, the standard used for ADA and Section 508; conformance is not claimed until the formal audit passes. The formal audit (automated scans, a keyboard-only walkthrough, screen-reader checks and contrast measurement, in all four languages) runs once the case-study content set is complete, expected late August 2026, and before launch. Statuses below update as criteria are verified or fixed; when the audit closes, this page carries the conformance statement and an Accessibility Conformance Report for procurement use.

21 Built in19 Verify at audit0 Fix planned10 Not applicable

// Sources & standards

// Perceivable

1.1.1

Non-text ContentA

Every image carries alt text through the CMS media pipeline; decorative canvases are aria-hidden. Audit reviews alt QUALITY, not just presence.

Built in
1.2.1

Audio-only and Video-only (Prerecorded)A

The site publishes no audio or video content.

Not applicable
1.2.2

Captions (Prerecorded)A

No video content.

Not applicable
1.2.3Not applicable
1.2.4

Captions (Live)AA

No live media.

Not applicable
1.2.5Not applicable
1.3.1

Info and RelationshipsA

Corrected 30 Aug 2026: the home-page and services statistics were marked up with the value before its term, so a screen reader announced the figure before the thing it counted, and the group carried an extra element that broke the list structure. Found by automated testing after two rounds of hand-checking had missed it. Automated WCAG 2.1 AA testing (axe-core) runs against every template in all four languages, 44 pages, and reports zero violations; it runs nightly against the deployed site, so a regression is caught rather than discovered. Semantic headings, landmarks, native details/summary fold-downs, real lists and tables throughout. Corrected 28 Aug 2026: the scroll-reveal wrapper on the service-area and offering templates was rendering a div between a list and its items, so those two templates announced no list, no item count and no position. The wrapper now renders the list item itself.

Built in
1.3.2

Meaningful SequenceA

Reading order follows DOM order by construction; formally verified with a screen reader at audit.

Verify at audit
1.3.3

Sensory CharacteristicsA

Instructions avoid shape/position-only references; copy sweep at audit confirms.

Verify at audit
1.3.4

OrientationAA

Fully responsive; no orientation lock anywhere.

Built in
1.3.5

Identify Input PurposeAA

Contact and booking forms to be checked for autocomplete attributes on name/email fields.

Verify at audit
1.4.1

Use of ColorA

Status chips and links carry text or underlines, not colour alone; verified page-by-page at audit.

Verify at audit
1.4.2

Audio ControlA

Nothing plays audio.

Not applicable
1.4.3

Contrast (Minimum)AA

Corrected 30 Aug 2026: the placeholder initials shown where a portrait is missing measured 1.73 to 2.27:1 depending on the ground, under even the 3:1 large-text threshold, and now use the body-size copper at 4.65:1 on the lightest ground and 6.67:1 on the darkest. Automated WCAG 2.1 AA testing (axe-core) runs against every template in all four languages, 44 pages, and reports zero violations; it runs nightly against the deployed site, so a regression is caught rather than discovered. Two rounds of token remediation. 27 Aug 2026: muted-text opacities lifted (mist/45 and /50 to /55, khaki/80 to /90), bluegray text to a lighter same-hue variant. 28 Aug 2026: that round had left the small mono type on the display coppers, which measure 4.44:1 (copper-light) and 3.52:1 (copper) against the dark ground and so clear the 3:1 large-text threshold but not the 4.5:1 body threshold. Every text token at 15px or smaller, and every hover state on it, now uses the body-size copper at 6.67:1; placeholder grey was lifted from 3.80:1 to 6.01:1. Copper and copper-light remain in use as display accents, where 3:1 applies and they pass, and on decorative aria-hidden glyphs, which the criterion exempts. Ratios computed against both dark grounds. Full-page verification at audit.

Built in
1.4.4

Resize TextAA

Relative units throughout; 200% zoom walkthrough at audit.

Verify at audit
1.4.5

Images of TextAA

All text is text. Client logos are logotypes, which the criterion exempts.

Built in
1.4.10

ReflowAA

Responsive to 320px with no horizontal scroll; audit re-verifies content-heavy pages.

Built in
1.4.11

Non-text ContrastAA

Focus rings, form borders and controls measured against 3:1 at audit; form borders were already lifted to #737373 for exactly this reason.

Verify at audit
1.4.12

Text SpacingAA

Spacing-override test at audit; no fixed-height text containers are known.

Verify at audit
1.4.13

Content on Hover or FocusAA

Hover surfaces are minimal (nav dropdowns); dismissability verified at audit.

Verify at audit

// Operable

2.1.1

KeyboardA

Everything is native links, buttons and details elements. The testimonial carousel's controls are native buttons, arrow keys step it from the controls row, and keyboard focus pauses the rotation the same way hover does; re-verified at audit.

Built in
2.1.2

No Keyboard TrapA

No custom focus management outside the mobile menu; trap test at audit.

Verify at audit
2.1.4

Character Key ShortcutsA

No single-character shortcuts exist (the search shortcut uses a modifier).

Not applicable
2.2.1

Timing AdjustableA

No time limits on anything.

Not applicable
2.2.2

Pause, Stop, HideA

Met 30 Aug 2026. The home page animates in five places - the client wall, the testimonial carousel, the typewriter ticker and two background canvases - and a Pause animations control now stops all of them. It is the second item in the tab order on every page, invisible until it takes focus so the design is unchanged, and repeated as a visible control in the footer. The choice is remembered per browser and restored before the first frame, so it does not have to be made again. Paused animations hold their current frame rather than resetting. The animations still play by default for every visitor, and the operating system's reduce-motion preference is deliberately not honoured - this criterion asks for a mechanism the visitor can use, which is a different thing, and that distinction is why this entry was previously the one open item on this register.

Built in
2.3.1

Three Flashes or Below ThresholdA

Nothing flashes; all motion is slow dissolves and reveals.

Built in
2.4.1

Bypass BlocksA

Skip-to-content link on every page.

Built in
2.4.2

Page TitledA

Every route sets a descriptive title through the shared metadata helper.

Built in
2.4.3

Focus OrderA

DOM-order focus by construction; keyboard walkthrough at audit, mobile menu included.

Verify at audit
2.4.4

Link Purpose (In Context)A

Link-text sweep at audit; card links carry full titles, not 'read more'.

Verify at audit
2.4.5

Multiple WaysAA

Navigation, site search, footer directory and sitemap all exist.

Built in
2.4.6

Headings and LabelsAA

Heading/label descriptiveness reviewed page-by-page at audit.

Verify at audit
2.4.7

Focus VisibleAA

A single global :focus-visible ring was added 28 Aug 2026. Before that, fourteen controls removed the browser outline and only one replaced it, leaving a border colour change as the sole focus signal. Perceptibility against the dark theme is still measured at audit alongside 1.4.11.

Verify at audit
2.5.1

Pointer GesturesA

Carousel swipe has button equivalents; confirmed at audit.

Verify at audit
2.5.2

Pointer CancellationA

Native activation events throughout; verified at audit.

Verify at audit
2.5.3

Label in NameA

Accessible names checked against visible labels at audit.

Verify at audit
2.5.4

Motion ActuationA

Nothing is operated by device motion.

Not applicable

// Understandable

3.1.1

Language of PageA

Every page declares its language and direction per locale. On Arabic the page CONTENT flows right-to-left; the site chrome (header, menu and search overlay) is deliberately pinned left-to-right at the client's direction, so "full right-to-left" would overstate it.

Built in
3.1.2

Language of PartsAA

English islands inside localized pages carry lang="en": the change log's verbatim requests and this register's reference material are both marked. Corrected 28 Aug 2026: fifteen accessible names (the header controls and the testimonial carousel) were still English on the Spanish, French and Arabic pages. An aria-label cannot carry a lang attribute, so they are now translated like any other copy rather than marked.

Built in
3.2.1

On FocusA

Focus never triggers a context change.

Built in
3.2.2

On InputA

Inputs never auto-submit or change context; all forms have explicit submits.

Built in
3.2.3

Consistent NavigationAA

One header, one footer, same order everywhere.

Built in
3.2.4

Consistent IdentificationAA

Shared component system: the same control is the same control on every page. One known exception, found 28 Aug 2026: on the case-studies listing the industry rail and the results pagination both label their arrows "Previous page" and "Next page", so two different controls share one accessible name. Naming fix planned.

Built in
3.3.1

Error IdentificationA

Form errors render as text; screen-reader announcement verified at audit with 4.1.3.

Verify at audit
3.3.2

Labels or InstructionsA

Every form field carries a visible label.

Built in
3.3.3

Error SuggestionAA

Error copy reviewed for actionable correction hints at audit.

Verify at audit
3.3.4

Error Prevention (Legal, Financial, Data)AA

No legal, financial or data-modifying transactions on the public site.

Not applicable

// Robust

4.1.1

ParsingA

React-generated markup; no duplicate IDs or malformed nesting. (Obsolete in WCAG 2.2 but recorded for 2.1 conformance.)

Built in
4.1.2

Name, Role, ValueA

Automated WCAG 2.1 AA testing (axe-core) runs against every template in all four languages, 44 pages, and reports zero violations; it runs nightly against the deployed site, so a regression is caught rather than discovered. Native elements carry this for free; the custom controls (search, mobile menu, carousel) verified at audit.

Built in
4.1.3

Status MessagesAA

Form submission confirmations to be checked for aria-live announcement.

Verify at audit