Accessibility statement for Pathnexis
Scope of this statement
This statement applies to the Pathnexis web application, the pages behind sign-in, and the documents the product generates. It does not cover other websites you can reach by following a link out of Pathnexis.
Pathnexis is supplied to colleges, universities and employers. Those organisations are covered by the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. This statement is written in the model form those regulations use, so that a college can read it alongside its own.
We measure this product against WCAG 2.2, Level AA.
How accessible this website is
We know that parts of this website are not fully accessible, and we know that most of it has never been checked with assistive technology. Of the 55 success criteria we looked at, 4 passed, 1 failed, 8 do not apply to this product, and 42 have not been tested.
“Not tested” is not the same as “passes”. It means nobody has evaluated that criterion here yet. Those criteria are listed in full further down this page.
Feedback and contact information
If you cannot use part of Pathnexis, or you need something in a different format, tell us. You do not need an account to do it.
Raise an issue and choose “Something is hard for me to use” as the category.
We aim to reply within 1 business day. Support is open Monday to Friday, 8am to 6pm, UK time.
Reporting accessibility problems
We are always looking to improve how accessible this product is. If you find a problem that is not listed on this page, or you think we are not meeting the accessibility requirements, tell us through the same route.
We will tell you what we found and what we plan to do. If we decide not to fix something, we will say why, and it will appear on this page the next time the statement is generated.
Enforcement procedure
The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018.
If you are not happy with how we respond to your complaint, you can contact the Equality Advisory and Support Service (EASS).
Pathnexis is a supplier. If you use Pathnexis through a college, university or employer, that organisation publishes its own accessibility statement, and the regulations are enforced against it rather than against us. Telling us is still the fastest way to get something fixed in this product.
Technical information about this website’s accessibility
We are committed to making this website accessible, in line with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018.
This website relies on HTML, CSS, JavaScript and SVG. The documents it generates are tagged PDFs.
Compliance status
Pathnexis is partially compliant with the Web Content Accessibility Guidelines version 2.2 AA standard, due to the non-compliances and exemptions listed below.
This evaluation was carried out by the delivery team, not an independent auditor, in Chromium without assistive technology.
8 of the 55 criteria do not apply to this product, because the feature they are about does not exist here:
Success criterion 1.2.1 (Audio-only and Video-only (Prerecorded), level A)
No media surface exists: no <video>, no <audio>, no <track>, no .vtt and no recording kind in OBJECT_KINDS (scripts/media-accessibility.mjs:8-14, a gate check that fails on the first uncaptioned one).
Success criterion 1.2.2 (Captions (Prerecorded), level A)
No prerecorded media exists (scripts/media-accessibility.mjs).
Success criterion 1.2.3 (Audio Description or Media Alternative (Prerecorded), level A)
No prerecorded media exists (scripts/media-accessibility.mjs).
Success criterion 1.4.2 (Audio Control, level A)
No audio exists (scripts/media-accessibility.mjs).
Success criterion 2.5.1 (Pointer Gestures, level A)
No path-based or multipoint gesture exists in the SPA: no onTouchMove, touchmove, onPointerMove or pointermove handler anywhere under artifacts/hello-world/src. The vendored embla carousel (components/ui/carousel.tsx) would drag, and it is imported by no page — verified by grep for <Carousel outside components/ui.
Success criterion 2.5.4 (Motion Actuation, level A)
No devicemotion, deviceorientation or screen.orientation listener exists anywhere under artifacts/hello-world/src. Nothing in the product is operated by moving the device.
Success criterion 1.2.4 (Captions (Live), level AA)
No live media surface exists. A live shadowing session is a join link to a third-party call, gated at runtime by the host's live_captions_confirmed declaration (artifacts/api-server/src/routes/shadowing.ts); no media is served by this product.
Success criterion 1.2.5 (Audio Description (Prerecorded), level AA)
No prerecorded media exists (scripts/media-accessibility.mjs).
Non-accessible content
The content listed below is non-accessible for the following reasons.
Non-compliance with the accessibility regulations
Success criterion 1.4.11 (Non-text Contrast, level AA)
A recorded, permanent non-conformance on the three-way compare radar. See finding A11Y-2026-09-22-001.
Where: modal:artifacts/hello-world/src/components/dashboard/compare-modal.tsx:89. Reference A11Y-2026-09-22-001.
Target fix date: 2026-12-21. The date the whole assurance set is next reviewed. It is a review date, not a delivery commitment: no engineer is assigned and no fix has been designed.
Disproportionate burden
We have not claimed disproportionate burden for anything on this website.
Content that is not within the scope of this evaluation
- Third-party surfaces reached by an outbound link, including the video-call provider a shadowing join link points at: not under this product's control.
- The mockup-sandbox artifact: it is not served to any user.
- Email bodies: not web pages under this evaluation's target.
Content we have not tested
42 of the 55 success criteria have not been evaluated on this product. They are neither passes nor failures: nobody has checked them. We list every one, with the reason, rather than leaving them out.
Success criterion 1.1.1 (Non-text Content, level A)
axe judges whether a name exists, never whether it is an equivalent. 20 of the 21 overlay sites were never opened, and no document was read.
Success criterion 1.3.1 (Info and Relationships, level A)
The axe rules that carry this criterion — heading-order, region, landmark-one-main, list, definition-list — are MODERATE impact, and BLOCKING excludes moderate (tests/sw7-a11y.spec.ts:25). A green sweep is not evidence for them. Data-table header association and the role="group" rails need a person.
Success criterion 1.3.2 (Meaningful Sequence, level A)
No reading-order review was performed. axe has no general rule for it.
Success criterion 1.3.3 (Sensory Characteristics, level A)
A content review, not an automatable one. No instruction text was read for reliance on shape, position or sound.
Success criterion 1.4.1 (Use of Color, level A)
Partial evidence only, on the surfaces that were looked at; no whole-sample review.
Success criterion 2.1.1 (Keyboard, level A)
No keyboard walk of the sample was performed. The e2e suite operates controls by keyboard in places, which is not the same as walking every sampled page.
Success criterion 2.1.2 (No Keyboard Trap, level A)
axe has no rule for a keyboard trap, so the sweep is silent on it whether or not an overlay is open. One overlay of 21 was walked.
Success criterion 2.2.1 (Timing Adjustable, level A)
The idle session limit is 12 hours (artifacts/api-server/src/lib/session-lifecycle.ts:40), which is under WCAG's 20-hour exception, so the criterion applies unless the security exception does. Whether a warning is shown and whether the limit can be extended was not evaluated, and the exception is a judgement no check here makes.
Success criterion 2.2.2 (Pause, Stop, Hide, level A)
The one piece of moving content is covered; auto-refreshing data regions were not assessed for whether they fall inside this criterion.
Success criterion 2.3.1 (Three Flashes or Below Threshold, level A)
No flash analysis was performed. There is no video, and no animation in the product was measured against the 3 Hz threshold.
Success criterion 2.4.1 (Bypass Blocks, level A)
Proven on the four dashboard shells; the public and auth shells were not covered by that test, and the axe landmark rules that would cover them are moderate impact.
Success criterion 2.4.3 (Focus Order, level A)
axe has no rule for focus order. One overlay of 21 was walked, and no form process was walked end to end.
Success criterion 2.4.4 (Link Purpose (In Context), level A)
axe link-name judges that a name exists, not that it describes the destination. "Read more"-class links were not reviewed.
Success criterion 2.5.2 (Pointer Cancellation, level A)
No review of down-event activation was performed.
Success criterion 2.5.3 (Label in Name, level A)
Covered on the route stratum only.
Success criterion 3.2.1 (On Focus, level A)
No focus-triggered context-change review was performed.
Success criterion 3.2.2 (On Input, level A)
No input-triggered context-change review was performed. Several filter controls submit on change; whether that is a change of context was not assessed.
Success criterion 3.2.6 (Consistent Help, level A)
Proven on the auth routes; the public and dashboard shells were not checked for the same relative order.
Success criterion 3.3.1 (Error Identification, level A)
No form was driven into its error state for this evaluation. The error states are exercised by feature e2e, which asserts product behaviour rather than this criterion.
Success criterion 3.3.2 (Labels or Instructions, level A)
Covered on the route stratum only, and only for label presence.
Success criterion 3.3.7 (Redundant Entry, level A)
Requires walking a process. None of the four sampled processes was walked, and the register → consents → profile sequence is exactly where this criterion bites.
Success criterion 4.1.2 (Name, Role, Value, level A)
Covered on the route stratum only.
Success criterion 1.3.5 (Identify Input Purpose, level AA)
No audit of autocomplete tokens across the sample was performed. One token is known good — the TOTP field carries autocomplete="one-time-code" (components/auth/code-field.tsx) — which is one field, not the sample.
Success criterion 1.4.3 (Contrast (Minimum), level AA)
THE CENTRAL LIMIT OF THIS EVALUATION. axe declines color-contrast over a gradient or an image and files it as `incomplete`; auditPage reads results.violations only (tests/sw7-a11y.spec.ts:105), so those declined verdicts are discarded unread. The AmbientBackground layer sits behind the landing hero and every dashboard shell, so the text over it is UNJUDGED, not passed. `incomplete` is read once in this suite, at :868, in an unrelated rule-liveness test.
Success criterion 1.4.4 (Resize Text, level AA)
No 200% text-only resize was performed. The reflow sweep changes the viewport, which is the 1.4.10 test, not this one.
Success criterion 1.4.5 (Images of Text, level AA)
No review for text rendered as an image was performed.
Success criterion 1.4.10 (Reflow, level AA)
Measured across the route stratum only. No overlay was measured at 320px, and the product's forms live in overlays.
Success criterion 1.4.12 (Text Spacing, level AA)
The text-spacing bookmarklet override was not applied to any sampled page.
Success criterion 1.4.13 (Content on Hover or Focus, level AA)
The Radix tooltips were not tested for dismissible, hoverable and persistent. axe has no rule for this criterion, and the sweep never hovers.
Success criterion 2.4.5 (Multiple Ways, level AA)
No review of whether each page is reachable by more than one route was performed. There is no site search and no sitemap page today (sitemap.xml is R-191's deliverable, forward-referenced at route-policy.ts:613-614).
Success criterion 2.4.6 (Headings and Labels, level AA)
axe judges that a heading exists and that the order does not skip; whether a heading DESCRIBES its section is a judgement, and heading-order is moderate impact and therefore not enforced (tests/sw7-a11y.spec.ts:25).
Success criterion 2.4.7 (Focus Visible, level AA)
No focus-indicator review under the sticky headers, in both themes, was performed. The tokens exist (focus-visible rings across the component set) and were not measured.
Success criterion 2.4.11 (Focus Not Obscured (Minimum), level AA)
Measured on one surface. Every dashboard shell has a sticky header, and no other sampled page was measured.
Success criterion 2.5.7 (Dragging Movements, level AA)
No dragging interaction was identified or tested. No pointermove handler exists in the SPA (see SC 2.5.1), which is evidence that there is little to test, not evidence that the criterion was evaluated.
Success criterion 2.5.8 (Target Size (Minimum), level AA)
Covered on the route stratum only, and the criterion's exceptions (inline, essential, user-agent control, spacing) are judgements axe does not make.
Success criterion 3.1.2 (Language of Parts, level AA)
No review for foreign-language passages was performed.
Success criterion 3.2.3 (Consistent Navigation, level AA)
The four shells each keep a fixed nav order by construction, and no cross-page comparison of the repeated navigation was carried out for this evaluation.
Success criterion 3.2.4 (Consistent Identification, level AA)
No cross-page comparison of component naming was performed. tests/sa7-role-nav.spec.ts pins nav naming per role, which is one repeated component, not the sample.
Success criterion 3.3.3 (Error Suggestion, level AA)
No form was driven into its error state for this evaluation. See SC 3.3.1.
Success criterion 3.3.4 (Error Prevention (Legal, Financial, Data), level AA)
The criterion applies here — tenant termination, placement withdrawal and consent changes are all legal or data-deleting commitments, and each is behind a confirmation dialog. Those dialogs are among the 20 overlay sites no test opens, so the reversible / checked / confirmed property was not verified.
Success criterion 3.3.8 (Accessible Authentication (Minimum), level AA)
One field was inspected, not the authentication paths. Whether paste is blocked anywhere, and whether any step requires a cognitive function test, was not verified in a browser.
Success criterion 4.1.3 (Status Messages, level AA)
Live regions are present in the markup; whether they are ANNOUNCED cannot be verified without assistive technology, and no AT has ever been run against this product.
Preparation of this statement
This statement was prepared on 2026-09-22.
This website was last tested on 2026-09-22.
It is due to be reviewed by 2026-12-21.
The testing was carried out by Pathnexis build agents — the delivery team that wrote the code under evaluation.
Self-evaluation by the delivery team under WCAG-EM, against the committed surface inventory. Automated testing with axe-core through Playwright, in Chromium only, in both themes and at 320px, plus inspection of the source. No assistive technology was used and no page was walked with a screen reader.
Browsers used: Chromium (Playwright), 1280x720 and 375x812, light and dark themes. Assistive technology used: none.
Draft: no human has signed this statement. The assurance centre's pack export refuses an artefact that is not `current` with a named signer (reason `artefact_not_current`).
Generated from evaluation A11Y-EM-2026-09-22 by scripts/a11y-statement.mjs.