Home  /  Accessibility

Accessibility

The pages are built to WCAG 2.2 at level AA. What the build checks on every run, what the documents are and are not, and how to tell us when something does not work for you.

Checked on every build

The site is generated, and the generator refuses to write it when one of these fails.

  • Exactly one h1 on every page, and no two elements sharing an id.
  • Every colour pair the site draws, in both colour schemes, against its WCAG 2.2 minimum: 116 pairs, among them the chips on their own tints and the focus ring on every ground it is drawn over, the brand band included.
  • No page scrolls sideways at a 320 px viewport, or at 390 px with the WCAG text-spacing overrides applied, and no text is clipped inside a card when they are.
  • No colour declared outside the two palettes, so the light and the dark scheme are each whole.
  • No image used for text, and nothing fetched from another site: no font, script or stylesheet.
  • The rendering of a certificate on the reading page is checked word for word against page 1 of its PDF.

Built in, and verified by hand

An audit of every page on 29 October 2026, with a keyboard, the accessibility tree, a 320 px viewport, text spacing and both colour schemes, found the faults these fix.

  • Landmarks for the masthead, the navigation, the content and the footer, and a skip link first in the page that moves focus to the content.
  • Tables that stack into labelled blocks on a phone keep their column headers for a screen reader, and the test or the analyte names each row.
  • Every figure is described in text: the chromatogram and the spectrum carry a title and a description, and the numbers they draw are in the tables beside them.
  • Every form control has a label; the order total is announced when it changes; an add-on that cannot ride on the chosen test says why in its own label.
  • Every link to a PDF says so, with its size, and a certificate link says how many pages it opens.
  • The menu closes with Escape, and the phone order bar is out of the tab order while it is hidden.
  • Nothing moves for a reader who has asked for reduced motion.

The documents

What each kind of PDF carries for a screen reader, read from the files by the build that writes this page, not asserted.

  • Certificates: selectable text that can be read aloud and copied, every font embedded, a structure tree that gives the reading order and marks 28 headings and 20 tables, with alternative text on 5 of its 5 figures and its language declared (en-GB).
  • The intake sheet: selectable text that can be read aloud and copied, every font embedded, a structure tree that gives the reading order and marks 11 headings, with alternative text on 1 of its 1 figures and its language declared (en-GB).
  • The batch manifest: selectable text that can be read aloud and copied, every font embedded, a structure tree that gives the reading order and marks 5 headings and 1 table and its language declared (en-GB).
  • The standard operating procedures: selectable text that can be read aloud and copied, every font embedded, a structure tree that gives the reading order and marks 46 headings and 9 tables, with alternative text on 1 of its 1 figures and its language declared (en-GB).

What the tagged PDFs still do not do

  • They claim no PDF/UA or PDF/A conformance: no validator has been run over them.
  • Inside a figure nothing is read separately: the tick labels, peak labels and legends are replaced by the figure’s alternative text, and the numbers are in the tables beside it.
  • Tables mark their header cells, but a table that breaks across a page does not repeat its header row.
  • Sub- and superscripts are read as plain characters, so a formula reads “C187H291N45O59” and an ion “[M+4H]4+”.
  • A certificate carries no digital signature; the signatures are entries in the laboratory’s result record, covered by its hash, and the closing statement says so.
  • The sample labels the laboratory prints for each vial are not tagged, and are not published here.

Every report’s web page, /r/ followed by its number, carries the same content again as accessible HTML.

What does not work without help

  • The lookup on /verify runs in your browser and needs JavaScript. Without it the page gives the plain address of every report, /r/ followed by the number, which is a static page.
  • Ordering composes an email in your mail client; where none is set up, the page shows the order as text to copy into any email.

Tell us

If a page, a report or a PDF does not work with the way you read, write to help@cupel.ca with its address and what happened. We answer by email, and a report you cannot read we will send you in a form you can.

Identity + Purity, $18510 business days or they’re free
Order