Bloomily web: Accessibility Conformance Report, WCAG Edition
Written by Bloomily from its own testing. Report date: 2026-10-10.
Based on VPAT® Version 2.5 Rev, WCAG Edition. VPAT® is a registered service mark of the Information Technology Industry Council (ITI).
Name of product and version
Bloomily web, as deployed to production on 2026-10-10: release bs-38029500808-1, source revision fad422c0bc. Every row describes this version. Design version 1, the design every customer school uses. Design version 2 is not covered by this report: on 2026-10-10 one demonstration organization used it, no customer school did, and it is the default for no one.
Report date
2026-10-10
Product description
Bloomily is software schools use to run childcare, preschool and camp programs. This report covers the web surfaces a school gives its families and the surfaces its staff use:
- Family-facing: a school's public website (
<school>.bloomily.app,bloomily.app/p/<school>and custom domains), the program catalog, registration and checkout, tour requests, the enrollment-only door, shared forms and form links, pay links, sign-in and account doors, invitations, the family portal (reports, photos and videos, billing, forms, documents, incidents, messages, calendar, meals, medications, enrollment, applications, settings), the drop-in web door (/go/<school>), the walk-up door and the check-in how-to page. - Operator-facing: Admin OS (the school office) and Staff OS (teachers), the workspace guides and coach, and the operator sign-up doors.
Not covered by this report: Bloomily's own marketing site (bloomily.app pages that are not a school's), internal tools, and retired web pages that answer 410. Emails and PDFs the product sends or generates are described in the notes.
Contact information
accessibility@bloomily.app. We send a first reply within 2 business days.
Notes
- Conformance claim: WCAG 2.1 Level A and Level AA. WCAG 2.2 criteria are reported for information and are not part of the claim. WCAG 2.0 Level A and AA criteria are the same criteria and are covered by the rows below.
- Both the family and the operator surfaces are reported in one table. Where a criterion's level differs between them, the remark says which surface the gap is on.
- A school's own content (its page text, headings, photos, captions, described versions, uploaded files) is the school's. Where the product gives the school a place to supply it, the row says "when the school supplies ...". Where the product has no such place yet, the gap is Bloomily's and the row says so.
- Five criteria depend on a school setting, "Caption and describe the photos and videos teachers post" (Admin OS, Settings, Accessibility). It is off for every school until the school turns it on. Where a row says "Supports when the school turns on" that setting, the product has the place and the player, and the school's own words make the criterion complete; with the setting off, the row describes what families get today.
- Other companies' parts inside these pages: the Stripe card and bank form, Stripe Checkout pages a family is sent to, Stripe Connect onboarding (operators), Cloudflare Turnstile (bot check), YouTube, Vimeo and Loom players a school embeds, Vimeo for Bloomily's own films, a Calendly scheduling page (operators), and the Apple and Google sign-in pages a family is sent to from "Continue with Apple" and "Continue with Google". Stripe publishes no conformance report for the products used; Cloudflare states WCAG 2.2 AA for Turnstile; Vimeo states it works toward WCAG 2.1 AA; Calendly publishes a VPAT 2.4 WCAG report (2022); Apple and Google publish accessibility statements for their sign-in pages. Bloomily configures Stripe's form so its borders, focus ring, placeholder and colours meet the criteria below and has measured them inside Stripe's frame.
- Emails: every email carries a language, layout tables are marked presentational, data tables carry headers, emoji are hidden from screen readers, every image has a text alternative, and all text was measured at 4.5:1 or better on 30 preview renders and 58 builders in light and dark schemes (0 failures). No email was tested in a mail client with a screen reader.
- PDFs the product generates (invoices, statements, signed forms, incident reports and others) carry a title and a language but are not tagged, so their structure is not exposed to assistive technology. Each family-facing PDF has an HTML equivalent in the product (the invoice page, the form's own page, the incidents page, the receipt email); the year-end statement's line items exist only in the PDF, and the school's office can read them with the family.
Evaluation methods used
Bloomily's own testing, 2026-09-24 to 2026-10-10. The first full pass ran on the production release of 2026-09-26; the fixes made after it were checked with their own tests, and on 2026-10-10 the live scan, the keyboard walk and the reflow checks below were run again on the version named above.
- Automated: axe-core 4.11.0 (rules tagged wcag2a, wcag2aa, wcag21a, wcag21aa) through Playwright on 39 public production URLs at 1280 px and 390 px (78 scans; 0 failures on 2026-10-10); a keyless harness of family pages rendered from fixtures at 1280 px and 390 px (128 scans, 0 findings) and 12 Admin OS and Staff OS pages in both designs at 1280, 390 and 320 px (72 scans, 0 findings), both harnesses run on every change to the product as a check whose count can only go down; 350 Admin OS screens rendered from fixtures in design 1 (the design gallery), scanned on 2026-09-29 with 214 failing elements left and again on 2026-10-10 in both designs (211 in design 1 and 5 in design 2 before that day's fixes; 1 and 0 after, the Staff OS Today button row named in row 2.1.1); a jsx-a11y lint baseline that can only go down (340 entries in 135 files); colour contrast computed with the WCAG 2.1 formula from the live stylesheets by unit tests.
- Keyboard only (no screen reader): Tab, Shift+Tab, Enter, arrow keys and Escape on 18 public pages at two widths in Chromium and WebKit (72 walks, 774 stops, on 2026-10-10), recording every stop's name, role, focus indicator and its contrast; the harness pages carry the same walk with the indicator assertion (2 px, 3:1).
- Reflow, zoom and text spacing: 15 public pages at 320 CSS px (400 % zoom), 640 CSS px (200 % zoom), with and without WCAG 1.4.12 spacing overrides, on 2026-10-10.
- Screen reader: VoiceOver with Safari on macOS on six public pages (a school's home page and catalog, sign-in, account creation, password reset and a pay link) on 2026-10-10, with VoiceOver's own speech captured as text by a script rather than heard by a person; what it found is in rows 1.1.1 and 2.4.4. No NVDA, JAWS, TalkBack or iOS VoiceOver pass was done, and no screen reader was run on a signed-in page or on an operator page. The two problems it found were fixed in the release that carries this report.
- Code review of the shared form, signature, upload, dialog, menu, select, table and video-player components, the page titles, landmarks and live regions, the time limits, the language marks, and the settings for other companies' parts.
- Unit and render tests written with each fix, each run against the unfixed code first.
- Signed-in family and operator pages were evaluated on the keyless harness, the design gallery and in tests, not on a signed-in production session; every name, role, state and announcement on them is taken from the DOM and axe, not from listening.
Applicable standards and guidelines
| Standard / guideline | Included in report |
|---|---|
| Web Content Accessibility Guidelines 2.0 | Level A: Yes. Level AA: Yes. Level AAA: No |
| Web Content Accessibility Guidelines 2.1 | Level A: Yes. Level AA: Yes. Level AAA: No |
| Web Content Accessibility Guidelines 2.2 | Level A and AA rows reported for information only; not part of the conformance claim. Level AAA: No |
Terms
- Supports: the functionality of the product has at least one method that meets the criterion without known defects or meets with equivalent facilitation.
- Partially Supports: some functionality of the product does not meet the criterion.
- Does Not Support: the majority of product functionality does not meet the criterion.
- Not Applicable: the criterion is not relevant to the product.
- Not Evaluated: the product has not been evaluated against the criterion (used only for Level AAA; no such row is included here).
WCAG 2.x report
Table 1: Success criteria, Level A
| Criteria | Conformance level | Remarks and explanations |
|---|---|---|
| 1.1.1 Non-text Content (Level A) | Supports | Every icon-only button and link has a name that says what it does; decorative icons and avatars are hidden from assistive technology; the signature pad is an image named with its instructions; Admin OS charts carry their numbers in text. A family photo is named by what the product holds (the school's caption on the family's own child, the school's description written for every family, its place in the set and the date) on daily reports, albums, assessment evidence, incident reports, message pictures and event pictures. When the school supplies a caption or description (daily report photos, album photos, newsletter pictures, message pictures, event pictures and website pictures all have a field for it), the text alternative is complete. A class-album photo of another family's child: Supports when the school turns on Caption and describe the photos and videos teachers post and describes each album photo. A school website's picture that the school has not described is marked decorative and hidden from assistive technology (VoiceOver with Safari read such a picture by its file name on 2026-10-10; fixed the same day); the decorative symbols on a program card without a picture are hidden. A website gallery picture the school has not described is announced as "Gallery image" and its number until the school describes it. |
| 1.2.1 Audio-only and Video-only (Prerecorded) (Level A) | Supports | Supports when the school turns on Caption and describe the photos and videos teachers post and writes what happens in each video. The family portal shows the school's description under each teacher video (daily reports and albums) and names the video with it; for a video with no sound the description is the alternative. Website videos a school uploads must carry a captions file, and the page text around them is the school's. The product hosts no audio-only content. |
| 1.2.2 Captions (Prerecorded) (Level A) | Supports | Supports when the school turns on Caption and describe the photos and videos teachers post and checks each video's captions. The family portal's player shows the checked captions as a track with a visible Captions control that says whether it is on; only captions a person at the school has checked are shown, and a draft never reaches a family. A school's website refuses to show an uploaded video without a captions file and plays it with a captions track (when the school supplies the file); YouTube, Vimeo and Loom embeds carry the captions the school set on that host. Bloomily's own film in Admin OS ("Invite your first family") plays with its English captions on. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A) | Supports | Supports when the school turns on Caption and describe the photos and videos teachers post and writes what happens in each video: the description plus "Show what is said" (the checked words as plain text in a named region) form the media alternative. On a school's website a described version can be added as a second video block (when the school supplies it). Bloomily's own film in Admin OS is narrated, and its narration is relied on in place of a described version. |
| 1.3.1 Info and Relationships (Level A) | Partially Supports | Every form field has a programmatic label, required state and error text linked by id (0 label failures on every harness and live scan); form sections are headings; every page has one main region, labelled navigation regions and a heading outline; every Admin OS and Staff OS list drawn as a grid is marked as a table with column headers (58 tables, held by a test that fails on a new one without them); emails' data tables carry headers; the facts of a Health record incident are a definition list with each term paired to its value, and the Programs roster's Children and Groups switch is a named group of buttons that say which is on (fixed 2026-10-10, held by a test that fails on a term outside its pair). Gap: generated PDFs are untagged (see Notes). |
| 1.3.2 Meaningful Sequence (Level A) | Supports | Reading order follows the visual order: the keyboard walk moves through navigation, main content and footer in order on every page walked, VoiceOver read the six public pages in that order, and no content is reordered by style alone. |
| 1.3.3 Sensory Characteristics (Level A) | Supports | Instructions name the control or the words to look for ("Press Keep going", "Type your name", "Fix 3 things to continue") and do not rely on shape, size, position, colour or sound alone. Reviewed in the product copy of the family flows. |
| 1.4.1 Use of Color (Level A) | Supports | Links inside text are underlined; required fields carry an asterisk and a key; errors carry text and an icon; today's date carries a programmatic marker; status chips carry words. On the program catalog a closed listing says "Enrollment Closed", and a child's badge says in words why the child cannot join ("Too young", "Too old"). |
| 1.4.2 Audio Control (Level A) | Supports | No audio or video starts on its own on any family or operator page; a school's videos and teacher videos play on demand with native controls. |
| 2.1.1 Keyboard (Level A) | Supports | Every control on the pages walked is reached and operated with the keyboard (Chromium and WebKit, public pages at two widths; harness assertion that nothing clickable is out of reach on every harness scan). Upload drop zones are buttons; every signature pad offers "Type your name"; the Admin OS waitlist drag has a "Change position" alternative; the Stripe card form is reached and left with Tab; the video player's Captions, "Play with description" and "Show what is said" controls are buttons. On Admin OS and Staff OS a table wider than its space scrolls inside a box that takes a Tab stop, says the table's name and moves with the arrow keys (every such box, held by a test that fails on a new one without it; fixed 2026-10-10 on the Labor and Enrollment reports and the care-checks log, where the last columns had been out of reach without a mouse); Staff OS Today's row of action buttons scrolls with its own Earlier and Later buttons. Not evaluated: the website builder's block editor and the newsletter studio (operator). |
| 2.1.2 No Keyboard Trap (Level A) | Supports | Tab always moves on (asserted on every harness scan and on the public walks); dialogs, menus, sheets and the photo viewer release focus on Escape; the Stripe frame and the bot check are left with Tab. |
| 2.1.4 Character Key Shortcuts (Level A) | Supports | The product defines no single-character shortcuts; Ask in Admin OS opens with a modifier key, and arrow keys act only inside the component that has focus. |
| 2.2.1 Timing Adjustable (Level A) | Partially Supports | The timers a family can meet were listed (25) and given a verdict: most are off, longer than 20 hours, tied to a real-world event, or not a limit on the person. The Stripe-hosted page used for registration and walk-up payments stays open 23 hours, the cart's page 24 hours and a pay link's page Stripe's 24 hours, so a card typed there is not lost; the saved-details token no longer clears a form; a shown PIN stays until Hide. Gap: the Stripe page for a sale at the school's desk ends after 30 minutes with no warning (the shortest life Stripe allows that page), and the office starts the sale again. The drop-in price quote's 15-minute limit is not switched on for any school. |
| 2.2.2 Pause, Stop, Hide (Level A) | Supports | The school-site testimonial rotator has a Pause/Play control, stops while any of its controls has focus and stops under the Reduce Motion setting; the hero scroll cue stops within 5 seconds; nothing else on a family or operator page moves or updates on its own. |
| 2.3.1 Three Flashes or Below Threshold (Level A) | Supports | Nothing flashes. |
| 2.4.1 Bypass Blocks (Level A) | Supports | A "Skip to main content" link is the first focusable element on every page and lands in the page's main region; every page has one main region and labelled navigation regions (0 skip-link failures on every harness scan; on the 72 public walks the first Tab reached the skip link on 64, the other 8 being sign-in and password pages that focus their email field on load, where Shift+Tab reaches it, and Enter on the skip link moved focus into the main region on all 64). |
| 2.4.2 Page Titled (Level A) | Supports | Every page's title names the page and the school ("Invoices · Billing · Growing Minds | Bloomily", "Enroll | Growing Minds | Bloomily", "Sign in | Bloomily"); Admin OS and Staff OS titles follow the current view. Minor: the account-creation page opened without a school shows a sign-in card under the title "Create your account". |
| 2.4.3 Focus Order (Level A) | Supports | Focus moves into dialogs, menus, selects and sheets, stays inside them, and returns to the opener when they close; Escape closes them; a refused submit moves focus to the error summary; a step change moves it to the new heading; removing a repeatable form entry (an emergency contact) moves focus to the previous entry's Edit button, or to Add; uploads keep focus on the row or the zone; the PDF viewer, the workspace guide, the tour and Ask return focus. |
| 2.4.4 Link Purpose (In Context) (Level A) | Supports | Link names say where they go ("Register for Preschool", "Book a Tour", "Powered by Bloomily", "View invoice"); 0 unnamed links on every harness and live scan; no "click here". On a school's home page the picture link on every program card is named by the program (VoiceOver read a card without a picture as two symbols on 2026-10-10; fixed the same day). |
| 2.5.1 Pointer Gestures (Level A) | Supports | No path-based or multipoint gesture is required: the signature pad has "Type your name", rotators and viewers have buttons, drag ranking has "Change position". |
| 2.5.2 Pointer Cancellation (Level A) | Supports | Controls act on release (native buttons and links). The signature pad draws on the down-event because drawing needs it (essential). |
| 2.5.3 Label in Name (Level A) | Supports | Accessible names contain the visible text; where a name adds words it starts with the visible label ("Describe this picture (optional), art.jpg"). Checked on every stop of the public walks that has both a visible label and an accessible name (0 mismatches on 2026-10-10). |
| 2.5.4 Motion Actuation (Level A) | Not Applicable | Nothing is operated by device motion. |
| 3.1.1 Language of Page (Level A) | Supports | Every document, error page and email declares its language. A school's website declares the language the school picks in its website settings (English unless the school picks one of 12 others), so a site written in another language is declared in that language when the school sets it. |
| 3.2.1 On Focus (Level A) | Supports | Focusing a control never changes context; selects open only on Enter, Space or an arrow key; sign-in pages focus their first field on load only. |
| 3.2.2 On Input (Level A) | Supports | Changing a filter or a select updates the list in place; forms submit only from their button; nothing navigates on change. |
| 3.3.1 Error Identification (Level A) | Supports | An invalid field is marked programmatically and its error text sits under it, linked to it; a refused submit shows "Fix N things to continue" with a link to each field and moves focus there; Stripe's field errors and a declined payment are announced; a failed bot check says so in text with "Try again". |
| 3.3.2 Labels or Instructions (Level A) | Supports | Every field has a visible label; required fields carry an asterisk with a "* required" key; hints and formats are read as the field's description; the consent sentence under every signature is its description; the description field under a teacher video or an album photo says who reads it. |
| 4.1.1 Parsing (Level A) | Supports | Markup is generated by React; axe reports no duplicate ids or ARIA parsing failures on any harness or live scan. (This criterion is retired in WCAG 2.2.) |
| 4.1.2 Name, Role, Value (Level A) | Supports | Buttons, links, fields, comboboxes, tabs, toggles, switches, the address combobox, the Ask combobox, upload buttons, the typed-signature switch, the video player's Captions control (pressed state) and "Show what is said" (expanded state) expose name, role and state (0 name and ARIA failures on the family and operator harness scans and the live scan); every Admin OS and Staff OS ledger exposes table roles, and a row that opens a record carries a named link or button; the payment-choice radios in the version 1 enrollment purchase panel are named. On 2026-10-10 these operator controls were fixed: the session picker on the Programs roster and the Licensing report is named by the words it shows; collection and registration bars are images named by their numbers; the Enrollment report's window links and the Payments status links say which one is current instead of claiming a pressed state; the hidden file fields on Staff OS Today's photo and video sheets are out of the Tab order and the reading, behind their named buttons; the website brand colour fields and the AI-generated mark on a lesson plan are named. Two expandable sections on a child's record (Monthly add-ons, Forms) no longer hold their link and form rows inside the control that opens them (fixed 2026-10-10, held by a test that fails on a control inside a summary). |
Table 2: Success criteria, Level AA
| Criteria | Conformance level | Remarks and explanations |
|---|---|---|
| 1.2.4 Captions (Live) (Level AA) | Not Applicable | The product has no live audio or video. |
| 1.2.5 Audio Description (Prerecorded) (Level AA) | Supports | Supports when the school turns on Caption and describe the photos and videos teachers post and writes what happens in each video: "Play with description" has the browser's own voice read the school's description, then plays the clip (extended description, W3C technique G8); it is offered when the browser has a voice. On a school's website a described version can be added as a second video block (when the school supplies it). Bloomily's own film in Admin OS is narrated, and its narration is relied on in place of a described version. |
| 1.3.4 Orientation (Level AA) | Supports | No page locks the display orientation. |
| 1.3.5 Identify Input Purpose (Level AA) | Supports | Sign-in, account creation, password reset, invitation, the registration wizard's parent fields, the tour request forms, the checkout signer and the family's profile in the portal identify their fields (name, given and family name, email, telephone, street address, city, state, postal code, new and current password, one-time code). On a school-built form, phone and email fields carry their purpose; a name field carries it when its label names the person filling the form (never a child, a contact or a second parent), and the school can set what any text field asks for. |
| 1.4.3 Contrast (Minimum) (Level AA) | Supports | Text is 4.5:1 or better on the design tokens, status colours, school brand colours (ink chosen by computed contrast, brand text darkened to 4.5:1), orange buttons (dark ink, 7.22:1), the Stripe form, the video player (12.5:1 or better) and emails; muted text on the tinted event cards of a school's home page is 6.97:1 or better; the catalog shows closed listings and program cards at full strength (grey text 4.83:1 or better). 0 contrast failures on all 39 live public URLs at two widths and on every family and operator harness scan. The 350 Admin OS design-gallery screens show 0 contrast failures in either design on 2026-10-10, after that day's fixes: the class count on the Programs class week (4.83:1), the avatar initials on the Health record (4.84:1) and on the Licensing report (4.84:1), and on Staff OS Today the count of selected children (4.66:1, was 3.37:1), each computed from the stylesheet by a test. Disabled controls are exempt. |
| 1.4.4 Resize Text (Level AA) | Supports | At 200 % (a 640 CSS px viewport) no text or control is lost or clipped on 15 public pages, with or without wider text spacing (2026-10-10); program summaries are shortened to two lines by design at every size, with the full text on the program's own page. |
| 1.4.5 Images of Text (Level AA) | Supports | The product draws no text as images apart from logos, which carry the school's name as their alternative. A picture a school uploads that carries words is the school's content; the media library's description field is where its words go. |
| 1.4.10 Reflow (Level AA) | Supports | At 320 CSS px (400 % zoom) 15 public pages show 0 px of horizontal scrolling with and without text spacing overrides (2026-10-10); 12 Admin OS and Staff OS pages reflow at 320 px with no page scroll and nothing clipped, where only data tables, tab strips and the tile dock scroll inside their own row. Signed-in family portal pages were measured at 390 CSS px, the phone width, and not at 320 CSS px. |
| 1.4.11 Non-text Contrast (Level AA) | Supports | Field borders are 3.68:1 on family pages; Admin OS and Staff OS field edges are 3.33:1 or better on every surface they sit on; focus indicators are at least 3:1, including a 2 px teal ring over a white halo on a school's coloured bands (4.42:1), the school 404 page's ring (4.97:1), the 2 px outline on the focused option inside an open select or menu (4.05:1 or better) and the ring on the video player's controls (the white halo 19.47:1 against the dark viewer); the Stripe field border is 3.68:1; brand-coloured lines and testimonial dots are at least 3:1. |
| 1.4.12 Text Spacing (Level AA) | Supports | With line height 1.5, paragraph spacing 2, letter spacing 0.12 em and word spacing 0.16 em applied, 15 public pages show no horizontal overflow and no clipped text at 320 and 640 CSS px (2026-10-10; summaries shortened to two lines by design are unchanged in kind). |
| 1.4.13 Content on Hover or Focus (Level AA) | Supports | Tooltips are dismissible with Escape, can be hovered and stay until dismissed; native title tooltips are the browser's. |
| 2.4.5 Multiple Ways (Level AA) | Supports | A school's site offers its navigation, its footer links and the home page's section links; the family portal offers the rail and Home; Admin OS offers the rail and Ask (a search over pages, settings and people). Pages that are steps in a process (checkout, registration) are exempt. |
| 2.4.6 Headings and Labels (Level AA) | Supports | Field labels and page headings describe their purpose; sections in a multi-section form are headings. A school's own page headings are the school's words (when the school writes descriptive headings). |
| 2.4.7 Focus Visible (Level AA) | Supports | Every Tab stop on 18 public pages at two widths shows a visible focus indicator in Chromium and WebKit (72 walks, 774 stops on 2026-10-10; 0 without one). At rest every ring measures 3:1 or better against the colour it sits on, including the 2 px teal ring over a white halo on a school's coloured bands (4.42:1), the ring on a school's lightly tinted sections (4.15:1 or better) and the school 404 page's ring (4.97:1 or better); the focused option inside an open select or menu shows a 2 px outline (4.05:1 or better); fields draw a 2 px outline inside their box; buttons keep a 2 px ring; the Stripe form draws a 2 px ring; every harness scan asserts the same (2 px, 3:1). On Staff OS Today's photo and video sheets the hidden file fields behind the "Choose from Photos" and "Take a photo" buttons are out of the Tab order, so every stop is a control that shows its ring (fixed 2026-10-10); a scrolling table box shows the same 2 px ring when it takes focus. |
| 3.1.2 Language of Parts (Level AA) | Partially Supports | Bloomily's fixed words on a school's site (navigation, buttons, default labels) are marked English, and our own screens on a school's site (enroll, checkout, register, the catalog, tour booking, the drop-in price page) are framed English with the school's program and session descriptions marked in the site's language; a school can mark one section of its site in another language; a translated message carries its language and the original its source language. Gap: on a site whose language is not English, the school's own form questions, policy text and staff bios shown inside those screens, and Bloomily's placeholders in the contact form, are marked English. No school had set another language on 2026-10-10. |
| 3.2.3 Consistent Navigation (Level AA) | Supports | Navigation, header and footer repeat in the same order on every page of a family. |
| 3.2.4 Consistent Identification (Level AA) | Supports | The same controls carry the same names everywhere (Close, Remove, Previous month, Next month, Pause, Play, Captions). |
| 3.3.3 Error Suggestion (Level AA) | Supports | Error text says what to fix ("enter an address like name@example.com", "is required", "enter 2 to 4 letters"). |
| 3.3.4 Error Prevention (Legal, Financial, Data) (Level AA) | Supports | Registration ends with a Review and Confirm step; checkout shows every item and the total beside the payment form before Pay, and the school can refund a payment; form answers stay editable before Send; a kiosk-door check-in can be reversed by a check-out. |
| 4.1.3 Status Messages (Level AA) | Supports | Error summaries take focus; upload results, signature added or cleared, address suggestion counts, Ask's match count, walkthrough steps and "Captions are live for families" are announced from status regions; the family portal's inline confirmations ("Saved." and the like) are announced from status regions; toasts announce through a live region and error toasts stay until closed; declined payments and failed bot checks are announced. |
WCAG 2.2 criteria (information only, not part of the claim)
| Criteria | Conformance level | Remarks and explanations |
|---|---|---|
| 2.4.11 Focus Not Obscured (Minimum) (Level AA) | Partially Supports | On 72 public walks (2026-10-10, Chromium and WebKit) the skip link renders above the fixed navigation, focused controls on a school's site scrolled clear of its sticky bottom call-to-action bar, and no toast covered a control. Gap, seen on the 2026-09-27 walks and not on the 2026-10-10 walks: at phone width, a focused program card at the bottom of the screen on the program catalog can sit more than half under the catalog's sticky bottom bar; the row keeps it until a walk with sessions selected rules it out. |
| 2.5.7 Dragging Movements (Level AA) | Supports | Every drag has a single-pointer alternative: typed signatures, upload buttons, "Change position" for waitlist ranking. |
| 2.5.8 Target Size (Minimum) (Level AA) | Partially Supports | Most targets are 24 by 24 CSS px or larger; 92 of 382 stops in Chromium (93 of 392 in WebKit) on the public walks measured under 24 px in one dimension: inline text links, which are exempt, and a school site's 20 px tall navigation buttons, which do not overlap another target. |
| 3.2.6 Consistent Help (Level AA) | Supports | The Guide corner in Admin OS and Staff OS, and a school's contact section on its site, sit in the same place on every page. |
| 3.3.7 Redundant Entry (Level AA) | Supports | Checkout and registration prefill what the family already entered in the session. |
| 3.3.8 Accessible Authentication (Minimum) (Level AA) | Supports | Sign-in never requires a cognitive test: a code sent by email or a password; codes can be pasted; the bot check shows at most a checkbox and never a puzzle. |
Legal disclaimer (Bloomily)
This report describes Bloomily's own testing of the version named above on the date named above. It is not a certification, and it makes no statement about content a school or a family adds to the product.