Accessibility Conformance Report
WCAG 2.1 Level A and AA, in the VPAT® 2.5 format.
- Product
- SiteSquare web application, public website and vendor upload portal
- Vendor
- SoloFive LLC
- Report date
- October 29, 2026
- Product version
- Web application as deployed on the report date
- Contact
- hello@sitesquare.app
How this was evaluated
This is a self-evaluation by the vendor, not an independent audit. It combines an automated scan of every page type with axe-core (version 4.10) against WCAG 2.1 A and AA rules, signed in and signed out; automated checks that run on every build (every form label is tied to its control, the status vocabulary and colours are shared, dialogs trap and return focus, tested in a real browser on every release); and a check that every page reflows at 320 pixels wide — the width of a 1280-pixel screen at 400% zoom — without horizontal scrolling. Screen-reader testing has not yet been done systematically; it is the next step, and this report will be revised with its results. Automated tools find only part of what can go wrong, which is why the levels below say “Partially supports” wherever we know of a gap.
Supports: 40 · Partially supports: 3 · Not applicable: 7
Success criteria
| Criterion | Level | Conformance | Remarks |
|---|---|---|---|
| 1.1.1 Non-text content | A | Partially supports | Product screenshots and icons that carry meaning have text alternatives; decorative glyphs are hidden from assistive technology. The in-browser certificate preview is a rendered image of a third party’s PDF and has no text alternative of its own — the extracted fields beside it are text, and the original file can be downloaded. |
| 1.2.1 Audio-only and video-only (prerecorded) | A | Not applicable | No audio or video content. |
| 1.2.2 Captions (prerecorded) | A | Not applicable | No video content. |
| 1.2.3 Audio description or media alternative (prerecorded) | A | Not applicable | No video content. |
| 1.2.4 Captions (live) | AA | Not applicable | No live media. |
| 1.2.5 Audio description (prerecorded) | AA | Not applicable | No video content. |
| 1.3.1 Info and relationships | A | Supports | Semantic headings, lists, landmarks and tables with header cells. Every form label is programmatically tied to its control — a source test fails the build on a label that names nothing. Grouped controls use fieldset and legend. |
| 1.3.2 Meaningful sequence | A | Supports | Reading order follows the DOM; layouts are built with flow and grid order, not absolute positioning. |
| 1.3.3 Sensory characteristics | A | Supports | Instructions name controls by their label, not by shape, colour or position. |
| 1.3.4 Orientation | AA | Supports | No orientation lock on the web or in the phone app. |
| 1.3.5 Identify input purpose | AA | Supports | Fields that collect the user’s own information (name, email, organization, password, one-time code) carry their autocomplete tokens. |
| 1.4.1 Use of colour | A | Supports | Compliance status always carries a word as well as a colour; required-versus-found findings are written out. Links inside running text are underlined, not marked by colour alone. |
| 1.4.2 Audio control | A | Not applicable | No audio. |
| 1.4.3 Contrast (minimum) | AA | Supports | Every text colour token is chosen to clear 4.5:1 on each surface it sits on, with the measured ratios recorded beside the token. Verified by an automated scan of every page type. |
| 1.4.4 Resize text | AA | Supports | Text is sized in rem and every page reflows at 320 pixels wide (400% zoom on a 1280-pixel screen), which covers 200% text resizing. |
| 1.4.5 Images of text | AA | Supports | No images of text, other than product screenshots on the marketing pages, which are described in text. |
| 1.4.10 Reflow | AA | Supports | Every page reflows to 320 CSS pixels without two-dimensional scrolling; wide data tables scroll inside their own region, which the criterion allows. |
| 1.4.11 Non-text contrast | AA | Partially supports | Focus indicators, form-control borders and status markers meet 3:1. Some decorative chart segments rely on adjacent text labels rather than 3:1 against their neighbours. |
| 1.4.12 Text spacing | AA | Supports | No fixed-height text containers; content survives increased line, letter and word spacing. |
| 1.4.13 Content on hover or focus | AA | Supports | No custom hover tooltips; help text is always visible beside its field. |
| 2.1.1 Keyboard | A | Supports | Every action is a native button, link or form control. Keyboard operation of dialogs is tested in a real browser on every release; the rest relies on native controls and has not been walked page by page with a keyboard alone. |
| 2.1.2 No keyboard trap | A | Supports | Dialogs trap focus deliberately while open, release it on Escape and return it to the control that opened them — pinned by an end-to-end test. |
| 2.1.4 Character key shortcuts | A | Supports | The one shortcut (search) uses a modifier key. |
| 2.2.1 Timing adjustable | A | Supports | Sessions extend on activity; no timed forms. Sign-in codes expire for security, which the criterion exempts. |
| 2.2.2 Pause, stop, hide | A | Supports | No auto-moving or auto-updating content. |
| 2.3.1 Three flashes or below threshold | A | Supports | Nothing flashes. |
| 2.4.1 Bypass blocks | A | Supports | A “Skip to main content” link on every page, and landmark regions. |
| 2.4.2 Page titled | A | Supports | Every page has a descriptive title. |
| 2.4.3 Focus order | A | Supports | Focus follows the visual order; dialogs move focus in and restore it on close. |
| 2.4.4 Link purpose (in context) | A | Supports | Links name their destination; repeated “Review” links sit in a row that names the vendor. |
| 2.4.5 Multiple ways | AA | Supports | Navigation, global search, and links from Home to every filtered list. |
| 2.4.6 Headings and labels | AA | Supports | Headings in order; every control has a visible label. |
| 2.4.7 Focus visible | AA | Supports | A 2-pixel focus outline on every focusable element, kept in forced-colours mode. |
| 2.5.1 Pointer gestures | A | Supports | No path-based or multipoint gestures. |
| 2.5.2 Pointer cancellation | A | Supports | Actions fire on click (up-event), using native controls. |
| 2.5.3 Label in name | A | Supports | Accessible names begin with the visible label text. |
| 2.5.4 Motion actuation | A | Not applicable | No motion-operated functions. |
| 3.1.1 Language of page | A | Supports | The document language is declared as English. |
| 3.1.2 Language of parts | AA | Supports | All content is in English. Vendor and insurer names are proper names. |
| 3.2.1 On focus | A | Supports | Focus never changes context. |
| 3.2.2 On input | A | Partially supports | Forms submit only on an explicit button. The department switcher in the sidebar reloads the page when a department is chosen; it is labelled as a view filter. |
| 3.2.3 Consistent navigation | AA | Supports | One sidebar for the app and one header and footer for public pages, each a single shared component. |
| 3.2.4 Consistent identification | AA | Supports | Status words, buttons and icons are shared components with one vocabulary, held by tests. |
| 3.3.1 Error identification | A | Supports | Errors are described in text, announced through a live region, and shown beside the field where one is at fault. |
| 3.3.2 Labels or instructions | A | Supports | Every field has a visible label and, where needed, a hint tied to it. |
| 3.3.3 Error suggestion | AA | Supports | Refusals say what is allowed (“a whole number of days from 0 to 365”). |
| 3.3.4 Error prevention (legal, financial, data) | AA | Supports | Deletions ask for confirmation; deleting a company requires retyping its name; approvals can be reviewed before they are made. |
| 4.1.1 Parsing | A | Supports | Generated by React; no duplicate ids (field ids are generated). Obsolete in WCAG 2.2. |
| 4.1.2 Name, role, value | A | Supports | Native controls throughout; custom dialogs use role="dialog" with a name; toggles expose their state. |
| 4.1.3 Status messages | AA | Supports | Success and error messages use an always-present live region, so they are announced without moving focus. |
Legal disclaimer
This report describes SiteSquare as of the date above. It is provided for information and is not a warranty. If something in SiteSquare is hard or impossible to use, write to hello@sitesquare.app — we treat accessibility reports as bugs, and we will provide information in another format while we fix one.