Accessibility
Built to be usable by everyone. Here is what we have checked.
HABLA™ is for someone in a difficult moment, possibly on an old phone, possibly with a screen reader. A product that lowers the threshold to speaking cannot raise it for disabled people. This page states the standard we work to, what has actually been tested, what is known to be open, and how to tell us about a barrier.
Last updated:
Written by the team that builds HABLA, and reviewed by nobody else yet.
This statement was written by the engineers who build the site. It has not been reviewed by counsel or by an independent accessibility auditor, and it is not a formal conformance report. It names what has been tested and what has not, which is the only version of this page that survives somebody checking.
The standard we work to
One standard for every surface, and a floor rather than a feature.
WCAG 2.2, level AA
Every HABLA surface targets the Web Content Accessibility Guidelines version 2.2 at level AA — this website and the person experience today, and the administrator console and the reports as they are built. Naming the version matters: version 2.2 adds criteria that bear directly on a person using a phone in a difficult moment, such as target size, focus appearance, and focus not being hidden behind a sticky header.
This page is about www.habla.care. The person experience is built to the same standard and tested the same way, and it is not yet public.
A floor every deployment gets
Accessibility is included in every plan. It appears on no pricing tier, on no feature-comparison row and in no add-on, and it cannot be removed by a customer. It is in the same category as the privacy floor and the crisis resources, because a person who cannot use the experience is a person the product did not reach.
What is actually tested, and how
Every item here runs in the release gate before a build can go live. It is stated from the test files themselves, not from intent.
Automated audit of every page
Every route in both languages is run through axe-core with its full WCAG 2.0, 2.1 and 2.2 rule set at levels A and AA, plus the rule that requires landmarks to have distinct names. The audit checks that it evaluated at least sixty rules on each page, because a narrowed audit reports the same green as a full one and this project once shipped exactly that. A clean run is the floor, not the standard: automated checks find only part of what matters.
Keyboard, focus and structure
In a real browser, the suite checks that the skip link is the first tab stop and moves focus to the main content, in both languages; that every navigation item is reachable by keyboard in order; that a focused control and a link target are not hidden behind the header; that every focus indicator in the header and the footer is painted against the ground it sits on, measured in pixels; and that every page has exactly one first-level heading and skips no heading level.
- Skip link first, and it works.
- Every focus ring measured for contrast.
- One first-level heading per page, no level skipped.
- Zoom never disabled, and the page language declared.
Small screens, large text and reflow
The browser suites run at desktop, wide-desktop, tablet and phone widths — 1440px, 1280px, 820px, 393px and 360px — and a separate project runs at 320px, the width WCAG 1.4.10 Reflow names. At every width, every page is measured at normal text size and at 200% text size, and must never scroll sideways. A further check measures every element on every page and fails if any one renders wider than the box that holds it.
Reduced motion
With the reduced-motion preference set, every element on every route is measured and must have no perceptible animation or transition; the same route is measured again without the preference to prove there was motion to suppress. Motion collapses to its end state rather than being deleted, so nothing that teaches through animation stops teaching.
Colour contrast
The contrast of every text colour on the surface it is named for, and of every focus ring on its own surface, is computed from the design tokens by a test rather than transcribed into a table. A token that fails the minimum fails the build.
The person experience, before it is public
Every route of the person experience renders and can be operated with JavaScript turned off, and the release gate runs it that way. Two things are deliberately not offered without scripting — the question about which topic matters most, and recording anything at all — and the suite asserts both as absences rather than letting them pass as working. Register entry A-22. It is audited at 320px on every one of its routes, in both languages, and the crisis resources it ships are in the markup rather than loaded afterwards.
What has not been tested
Stated rather than implied, because this is the part a buyer needs in order to trust the rest.
Nobody using assistive technology has tried it yet
Every check above is automated or performed in review. We have not yet sat with a person who uses a screen reader, a switch, voice control or magnification and watched them use the site. Until we have, the barrier-reporting route below is doing the work that session would do, and we would rather be told than assume. Register entry A-26.
There is no formal conformance report
A buyer who needs a Voluntary Product Accessibility Template or an Accessibility Conformance Report will not find one here yet. One belongs after the end-to-end claims audit, which has not run, so that it states what has been verified rather than what was hoped. Ask us, and we will tell you where that document stands.
What is known to be open
These are tracked in the project’s own register, each with the condition that closes it. They are listed here in plain words.
A border colour with no headroom
One border colour used on cards measures 3.32 to 1 against the editorial background, where the non-text contrast minimum is 3 to 1. It passes, by 0.32, and no test pins that figure, so a change to the surface could erode it unnoticed. Register entry A-10.
Space does not grow when a reader enlarges the text
Every size of text on this site is set in units that follow the reader’s own text size, so raising it to 150% or 200% enlarges the words and nothing is cut off, hidden or pushed sideways — we measure that at every width we build for, including 320px. What does not follow is the space: padding, gaps and the page margin are fixed lengths, so as the words get bigger the room around them stays where it was. At 200% text the space around a card’s copy ends up narrower than the copy it surrounds, where at the ordinary size the design gives it half as much again. Nothing becomes unreadable and nothing is lost; the page gets tighter than it was drawn to be, and a reader who needs large text gets the least generous version of it. Fixing it means changing the unit every spacing in the system is written in, which touches every page HABLA has, so it is its own piece of work with its own review rather than something done in passing. Register entry A-49.
A long table region whose focus ring lands off the screen
One page for leadership carries a table region you can scroll, and it is taller than the screen it appears on. It is reachable by keyboard, as it must be, and on a phone the browser scrolls it into view in a way that puts its top edge and its focus ring above the visible area. It is never entirely hidden, so the level-AA requirement holds; the enhanced one does not. Register entry A-30.
The chat panel closes when focus leaves it, and only the keyboard path was measured
HABLA AI’s panel closes when focus moves out of it, so a floating panel never sits over a control you have just focused. That was measured with a keyboard, at every width the suite runs. It has not been measured with a screen reader, where somebody reading past the panel could find it closed behind them. Register entry A-28.
The chat’s disclosure scrolls, and on a small phone the only sign is the cut at its edge
On a 360px-wide phone the chat’s privacy disclosure fills the panel and the cut at its lower edge is the only sign there is more to read. A reader who scrolls reaches all of it, and the box to type in is below. Register entry A-29.
The chat launcher still sits over page content on wider screens
Below 1280px the chat launcher sits in the flow of the page and covers nothing. Above that it floats in the corner, and at the top of the page it still overlaps text on up to 11 of this site’s 46 pages, measured at each width we build for. On every one of those it is the tail of a paragraph or one line of a list, and never more than a fifth of it. What is open is that a floating control and a page that fills its own margins cannot both have that corner. Register entry A-34.
Two rules that read this website only
The scan for styles nothing uses and the byte budget for each page still read only this website and not the person experience. The person experience was measured by hand and was clean; what is open is that nothing would catch it regressing. Register entry F-28.
A clearance nothing measures at very large text
The room the sticky header leaves above a focused control is asserted by test at normal and at double text size, and at one width only when text is enlarged further. It was measured by hand at those larger sizes across every width we build for and was correct; what is open is that no test would catch it changing. Register entry F-36.
The sticky header grows taller when text is enlarged
At 1280px and 1440px with text at 200%, the header folds to its Menu control — the same bar a phone gets — so the sticky bar stays 65px instead of growing to 95px, and every destination stays reachable. Until 14 September this clause said the row wrapped instead, and that nothing on it overlapped. The height was right; the second half was not. It had been measured between the header’s blocks rather than between the links inside them, and measured link by link there were 202px of navigation in English and 272px in Spanish with nowhere to go, with the Contact control painted underneath the language switch. That is fixed, and it is written here because the wrong sentence was published. What is still open is the reason this clause exists: the test pins the bar at exactly 65px and runs at the normal text size only, so nothing in the repository would notice it growing. This is the desktop half of the gap in the clause above. Register entry A-38.
A focus failure reported in review that our own tests could not reproduce
Reviewers reported that at 360px, 393px and 820px wide, with text at 200%, a focused link in the header was completely hidden. Walking the same pages with the same key presses under this site’s own test devices, every link measured fully visible — on the build before the fix as well as the one after it. The narrower case they also reported, at 320px, did reproduce and is fixed. What is open is that we cannot yet say how the other three numbers were produced, and writing that down is better than dropping it. Register entry A-37.
How a screen reader says P²HI™ has not been tested
The short name for the category this site introduces is written P²HI, with a superscript. Screen readers usually read that superscript aloud. Some voices, at some settings, skip it and say “P H I” — which in healthcare and government means Protected Health Information, a different thing entirely, and a spelling this site does not publish. We have not yet listened to it on a real screen reader, so we are not claiming it is fine. Wherever the short name appears the full phrase is next to it, so a reader hears Privacy-Preserving Human Intelligence™ in the same breath. Register entry A-73.
With no script, the way back to the form opens an empty one
In the person experience, a message that cannot be sent leads to a screen offering a way back to the form. Where a script runs, it returns the person to what they wrote. Where no script runs it is an ordinary link, so it opens a fresh form with every box empty. Nothing the person wrote is destroyed — it is one more step back in the browser — but the screen does not say so, and WCAG 2.2 asks at level A that somebody not be made to enter the same thing twice. The person experience is not public yet. Register entry A-33.
Report a barrier
If something on this site does not work for you, tell us. A person reads it and replies.
How to reach us
Write to info@pragmaticsolutions.app, or use the contact page, or tell HABLA AI, the chat on this page, and ask it to pass it on. All three reach the same inbox and the same people, and we aim to reply within two working days. The address is also printed in plain text at the foot of every page, so it is reachable even if the contact form is the thing that is not working for you.
It helps to tell us which page you were on, what you were trying to do, and what browser and assistive technology you were using, but none of that is required. A short message is enough.
What happens next
If what you describe is a defect, we fix it and tell you when it is fixed. If we cannot fix it quickly, we say so and give you another way to do what you were trying to do. If it is a barrier we did not know about, it goes into the register above with the condition that closes it, and this page is updated.
Accessibility is the delivery mechanism, not a compliance posture.
HABLA reaches frontline workers without a desk, students, people on old phones and slow connections, and readers in two languages. A person who cannot use the experience is a person the product did not reach, and no floor, no report and no pack helps them.