Conformance status
Atlas is partially conformant with WCAG 2.2 Level AA.
"Partially conformant" means that some parts of Atlas do not fully meet the standard. We are publishing this rather than a conformance claim we cannot support, because a statement that overstates its position is worse than no statement at all — it sends people into barriers we already know about.
The Web Content Accessibility Guidelines (WCAG) define requirements for making digital content more accessible to people with disabilities. Atlas was assessed against WCAG 2.2 at Levels A and AA, which is 55 individual success criteria. Of those:
| Result | Criteria | What this means |
|---|---|---|
| Supports | 23 | The requirement is met. |
| Partially supports | 19 | The requirement is not met. Atlas satisfies it on some screens but not others. This is a failing result, recorded separately from the one below only to show that the problem is localised rather than general. |
| Does not support | 7 | The requirement is not met, and the failure is the general condition across the product rather than confined to places we can list. Isolated compliant instances exist for some of these — Atlas does identify the purpose of its sign-in fields, for example — but they do not change the result. |
| Not applicable | 6 | The requirement does not apply — for example, criteria about video captions, where Atlas publishes no audio or video of its own. See the note below on customer message content. |
| Total | 55 | Every criterion was evaluated. None was left unassessed. |
Read that table carefully, because the four-way split can flatter a result that does not deserve it. WCAG treats a success criterion as met or not met, with nothing in between. Counted the way the standard itself counts, 29 of the 55 criteria are met and 26 are not (23 supports + 6 not applicable) — the 19 "partially supports" rows fall on the failing side. By level, Atlas meets 17 of the 31 Level A criteria and 12 of the 24 Level AA criteria.
We state it this way deliberately. A reader who added 23 and 19 and concluded that Atlas meets three-quarters of the standard would be wrong, and we would rather say so than let the arithmetic do the flattering. It is also worth saying that Level A is the more serious of the two shortfalls: those are the criteria whose failure tends to stop someone completing a task rather than make it harder.
One note on the six "not applicable" results, five of which concern audio and video. (The sixth is the criterion about controls operated by moving or shaking the device, which Atlas does not use.) Tychron authors no audio or video in Atlas. Atlas does display multimedia messages sent by and to our customers, and that content may contain audio or video we did not create and cannot caption. Those criteria are recorded as not applicable to Atlas as a product; they are not a claim that customer message content is accessible.
Scope of this statement
Known limitations
The following barriers are known to us. Each entry describes what a user encounters, who it affects, and where things stand. This list is deliberately specific — a vague statement is not useful to someone deciding whether they can do their job in our software. They are grouped by the way people work, because most readers care about the subset that applies to them rather than the whole catalogue.
If you use a screen reader
If you navigate by keyboard
If you use speech input
If you fill in forms
If you rely on autofill to reduce typing
If you have low vision, or change how text is displayed
If you use a pointer, touch, or a switch device
What works well
Stated because an honest statement reports both directions, and because these are the things worth relying on. Where a claim rests on the pages we rendered rather than on the whole application, it says so.
- Every page we tested reflows to a 320-pixel-wide window with no horizontal scrolling and no loss of content. Measured, not estimated: zero pixels of horizontal overflow on all fifteen. At 200% zoom the same result holds on the six customer-portal pages we tested at that setting.
- The dark theme's text colours meet the contrast requirement. We say this on the strength of a separate extraction of all 196 of the dark theme's design tokens — 140 of them colours — composited over the surfaces they actually sit on, not on the automated scanner, which returned no dark-theme failures but also returned 755 dark-theme results it could not decide. Its form-field borders and focus ring do not meet the requirement — see the limitations above.
- Every page has a "skip to main content" link, and every page has a browser tab title. Both are set application-wide — the skip link in all three page layouts, the titles by a single router rule covering all 401 routes — so this covers every page, not only the fifteen we rendered. The titles are specific and descriptive everywhere except the home page of each portal, which is titled simply "Atlas".
- Password managers work throughout sign-in, and no field in Atlas blocks pasting.
- Navigation is consistent, and there are two independent ways to find a page: the sidebar and the Quick Find search. The sidebar is rendered from a single component used in a single place, so its order cannot vary between the routes that have it.
- Dialogs move keyboard focus into themselves when they open and return it to the control you opened them from when they close. The mobile navigation drawer correctly removes its contents from the keyboard order while it is closed. Where dialogs fall short is Escape and the ten progress dialogs described above.
- Reading order matches visual order. We compared the two directly on six pages, including the one whose layout uses the CSS mechanism most capable of causing a divergence, and found none.
- Nothing in Atlas flashes, auto-plays audio, or requires a dragging motion, a multi-finger gesture, or device movement to operate. Where dragging is offered — reordering the home dashboard — there are Move up and Move down buttons that do the same job. They are, however, hard to discover: the panel's instructions do not mention them, and the drag handle beside them is hidden from screen readers. The alternative exists and works; finding it takes more than it should.
- Atlas does not ask you to re-enter information you have already given it within a process. We checked the multi-step forms specifically for this, including one where two steps ask similar-looking questions for genuinely different purposes.
- Signing in does not require you to solve a puzzle, transcribe a code from an image, or remember something unaided. Password managers work, and nothing blocks pasting.
Report a barrier
If you encounter a barrier in Atlas, we want to hear about it. Please tell us the page you were on, what you were trying to do, and the assistive technology, browser, and operating system you were using, if you know them. That detail lets us reproduce the problem rather than guess at it.
Contact us about accessibility
- Email [email protected]
- Telephone (844) 892-4766
- Or use the contact form at tychron.com/sales
These are the same routes given in Tychron's general accessibility statement, which covers our public website and our products together. This document is the detailed, criterion-by-criterion assessment for Atlas specifically.
One caution about the third route, which we would rather state than have you discover: the contact form is protected by reCAPTCHA. A verification challenge of that kind can itself be a barrier, particularly for people who cannot complete a visual or audio puzzle, and it is the reason we list email and telephone first. If the form stops you, either of the other two routes reaches us without one.
We will acknowledge what you send us and tell you what we intend to do about it. If a fix is going to take time, we would rather say so than leave a report unanswered.
How we assessed Atlas
This statement is based on a self-evaluation carried out in several passes, each able to correct the one before it.
First, a full review of the application source against all 55 criteria, with every finding recorded against a specific file and line. Second, an automated scan using axe-core 4.12.1 driven by Playwright, covering fifteen routes across both portals, each tested at four combinations of viewport and theme: desktop light, desktop dark, a 390-pixel phone width, and a 320-pixel width, which is the width the reflow requirement actually names. Third, a set of purpose-built browser probes for the criteria that automated tools cannot decide. Those probes drove real keyboard traversal to test focus visibility, measured centre-to-centre distances between touch targets, applied the text-spacing overrides the standard specifies and looked for clipping, compared visual reading order against document order, rendered the application with a reduced-motion preference set and checked what was still moving, and submitted forms to observe real validation behaviour.
Colour contrast was computed rather than judged by eye. Design tokens were extracted from the running application, colour references resolved, semi-transparent values composited over the backgrounds they actually sit on, gradients evaluated at every stop with the worst stop taken, and contrast ratios calculated arithmetically. This was necessary because the automated scanner returned 2,503 contrast results it could not decide on its own, owing to the layered and semi-transparent surfaces Atlas uses — 755 of them in the dark theme alone. That last figure is why the dark theme got its own separate extraction: the scanner reporting no dark-theme failures meant only that it had not decided, and we had at one point written that up as a pass. It is a pass, but we did not know that until we computed it.
Limits of this assessment
Six limits should be stated plainly, because each of them qualifies something above.
Testing with screen reader software has not been performed. Not delayed or partially done — not done. We have not tested with JAWS, NVDA, or VoiceOver. Our testing reports what browsers expose to assistive technology, which is what those tools consume, but it is not a substitute for using them, and we do not claim otherwise.
We rendered fifteen pages of 401. Findings from source review cover the whole application; findings from browser testing cover the sample. Where a result above depends on the sample, we have said so.
We tested in Chromium only. Firefox and Safari were not exercised, and neither were their assistive-technology pairings. Behaviour may differ there.
The 200% zoom testing covered the customer portal only. Six of its pages, in both display modes. The administrative portal was not tested at that zoom level at all, so nothing above claims a zoom result for it.
Our test environment had very little form content in it. Across the fifteen rendered pages the automated scan encountered eight form controls in total, because the pages with substantial forms need data our test environment does not have and rendered as empty shells. Nearly all of the form-related findings above — labelling, required-field marking, error association — therefore rest on reading the source rather than on observing a form in a browser. We report them at full weight, because a control given no label can only fall back to a generic one, but the distinction is real and this is the largest single gap in our coverage.
Two findings rest on computed styles rather than on something we watched happen. The banner icon's contrast and the reduced-motion behaviour of the animation in banner messages were decided by resolving CSS and compositing colour values, because the banner did not appear on any page our tests could render. The arithmetic is sound and the cascade is unambiguous, but we did not see it.
Corrections we made to this assessment
Our internal findings were reviewed repeatedly before this statement was written, and every review found errors in the one before it. We are recording that here rather than quietly fixing it, because an assessment that hides its own corrections is not evidence of anything.
Some of the errors were findings that were not real. Two components the draft reported as defective already do the right thing — the dropdown and toggle components accept a caller-supplied label, and the container that displays status messages is permanently present in the page — so acting on the draft would have sent our engineers to change code that is already correct. A suspected keyboard trap in the help dialog and a suspected fault in the mobile navigation drawer both turned out on re-reading to be sound. A claim that two steps of one registration form asked the same questions twice was wrong: they ask similar-looking questions for different destinations, which a reader of the code could mistake for duplication and a person who knows the product could not.
Some were counts that did not survive checking. A table count was double what it should have been. A count of 41 unlabelled fields became three once each was inspected. A count of five controls whose spoken label does not match their visible one became two.
The corrections then had to be corrected. A second review found three errors that the first round of corrections had introduced, the most consequential being a passing verdict re-justified on the grounds that the Escape key closes our dialogs — it does not close most of them, and it does not close the one the claim was made about. A third found that our focus indicator's contrast had been measured on the wrong colour, and the true figure was worse. A fourth found the same class of error four more times, and it is worth naming the class, because it is the one to watch for in work like this: in every case a correctly measured number had been attached to the wrong thing. The right contrast ratio filed under the wrong criterion. The right count of animations described as no animation at all. A statement about grid layout that was true of three pages and false of the fourth — the fourth being the only one where it mattered.
The last round produced two corrections that changed what this statement says to you. Destructive actions: we had written that they are generally confirmed, with one exception. A search across the whole application found the ratio is the other way round — seven of nine are unconfirmed. And the ten progress dialogs: we had established that they hold keyboard focus, and then stopped one question short of asking whether a failed export releases you. It does. The difference between "ten dialogs can trap you permanently" and "ten dialogs hold you for the length of an export and then give your focus back" is the difference between a warning you can act on and one that would put you off the product for no reason, and we only have the second version because someone asked the next question.
A final round re-counted every figure in this document that comes from counting places in our own source code, and found three of them low. Our codebase writes the same component two different ways, and the searches behind those counts had only looked for one of the two spellings. There are 62 confirmation dialogs rather than 61, and 143 unlabelled toggles rather than 139, which moves the total number of unnamed controls from 327 to 331. Every number here that rests on counting components has now been re-derived by a method that reads both spellings. We are reporting a correction that made our own results slightly worse because a reader has no way to audit the difference, and a statement that only ever corrects itself in the flattering direction is not worth reading.
We are stating this at length for a reason. Round after round found errors the round before had introduced, which is the strongest evidence we can offer that a self-assessment is not a substitute for being told by the people affected. It is also why we would rather hear from you than be trusted.
Two pieces of advice in earlier drafts were wrong and have been corrected rather than deleted. The first told users who find the light theme hard to read to switch to the dark theme; form field borders fail the contrast requirement in both. The second offered the Escape key as the way out of a dialog whose dismiss button can scroll out of reach, and that dialog is specifically one Escape does not close. Both were bad advice given to the people least able to route around it, which is worse than saying nothing. A third has been added above rather than removed: the browser tab title is offered as a partial workaround for missing page headings, and we now say plainly that it does not work on the home page.
What happens next
Each issue above has an identified remedy. Eight changes account for the majority of the affected surfaces, and they are sequenced first: making status messages announce, restoring page headings, adding column associations to data tables, naming dialogs, labelling the dropdowns and toggles, connecting error messages to their fields, making dialogs close on Escape, and giving the progress dialogs a keyboard way out. Four of the eight are single changes to shared components, which is why they reach so far — the first alone makes 586 existing messages audible by adding two attributes to one element, and the Escape and progress-dialog fixes are both single changes to the same shared dialog component, reaching every dialog in the product. Labelling individual controls is the one large job, because it has to be done at each of the 331 places a control is used.
The contrast corrections are a bounded set of colour values, with the high-contrast mode's own focus outline treated as the most urgent, since an accommodation that fails is worse than none.
We also maintain a set of accessibility linting rules that has never actually run in our build pipeline: it exists as a command, and our verification pipeline does not call it. Its file coverage is also partial — four directories of components and shared views, which leaves most of both portals' page-level code unchecked. Wiring it in and widening it turns a class of these defects from something an audit finds into something a build refuses.
We will review and update this statement as remediation progresses, and re-assess in full at least annually. We have not set dated commitments against individual items here, because a date we miss is worse than no date; progress will be reflected in this statement as it lands.
Appendix: full criterion results
The complete assessment, for readers who need the detail. Levels are as defined by WCAG 2.2.
| Success criterion | Level | Result |
|---|---|---|
| 1.1.1 Non-text Content | A | Partially Supports |
| 1.2.1 Audio-only and Video-only (Prerecorded) | A | Not Applicable |
| 1.2.2 Captions (Prerecorded) | A | Not Applicable |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | A | Not Applicable |
| 1.2.4 Captions (Live) | AA | Not Applicable |
| 1.2.5 Audio Description (Prerecorded) | AA | Not Applicable |
| 1.3.1 Info and Relationships | A | Partially Supports |
| 1.3.2 Meaningful Sequence | A | Supports |
| 1.3.3 Sensory Characteristics | A | Supports |
| 1.3.4 Orientation | AA | Supports |
| 1.3.5 Identify Input Purpose | AA | Does Not Support |
| 1.4.1 Use of Color | A | Partially Supports |
| 1.4.2 Audio Control | A | Supports |
| 1.4.3 Contrast (Minimum) | AA | Partially Supports |
| 1.4.4 Resize Text | AA | Partially Supports |
| 1.4.5 Images of Text | AA | Supports |
| 1.4.10 Reflow | AA | Supports |
| 1.4.11 Non-text Contrast | AA | Does Not Support |
| 1.4.12 Text Spacing | AA | Partially Supports |
| 1.4.13 Content on Hover or Focus | AA | Supports |
| 2.1.1 Keyboard | A | Partially Supports |
| 2.1.2 No Keyboard Trap | A | Partially Supports |
| 2.1.4 Character Key Shortcuts | A | Does Not Support |
| 2.2.1 Timing Adjustable | A | Does Not Support |
| 2.2.2 Pause, Stop, Hide | A | Partially Supports |
| 2.3.1 Three Flashes or Below Threshold | A | Supports |
| 2.4.1 Bypass Blocks | A | Supports |
| 2.4.2 Page Titled | A | Supports |
| 2.4.3 Focus Order | A | Supports |
| 2.4.4 Link Purpose (In Context) | A | Partially Supports |
| 2.4.5 Multiple Ways | AA | Supports |
| 2.4.6 Headings and Labels | AA | Does Not Support |
| 2.4.7 Focus Visible | AA | Partially Supports |
| 2.4.11 Focus Not Obscured (Minimum) | AA | Partially Supports |
| 2.5.1 Pointer Gestures | A | Supports |
| 2.5.2 Pointer Cancellation | A | Partially Supports |
| 2.5.3 Label in Name | A | Partially Supports |
| 2.5.4 Motion Actuation | A | Not Applicable |
| 2.5.7 Dragging Movements | AA | Supports |
| 2.5.8 Target Size (Minimum) | AA | Partially Supports |
| 3.1.1 Language of Page | A | Supports |
| 3.1.2 Language of Parts | AA | Supports |
| 3.2.1 On Focus | A | Supports |
| 3.2.2 On Input | A | Supports |
| 3.2.3 Consistent Navigation | AA | Supports |
| 3.2.4 Consistent Identification | AA | Supports |
| 3.2.6 Consistent Help | A | Supports |
| 3.3.1 Error Identification | A | Partially Supports |
| 3.3.2 Labels or Instructions | A | Partially Supports |
| 3.3.3 Error Suggestion | AA | Partially Supports |
| 3.3.4 Error Prevention (Legal, Financial, Data) | AA | Partially Supports |
| 3.3.7 Redundant Entry | A | Supports |
| 3.3.8 Accessible Authentication (Minimum) | AA | Supports |
| 4.1.2 Name, Role, Value | A | Does Not Support |
| 4.1.3 Status Messages | AA | Does Not Support |