Accessibility at Bloomily

Bloomily for iOS: 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). WCAG criteria are applied to native software as described in WCAG2ICT.

Name of product and version

Three iOS apps, as sold on the App Store on 2026-10-10:

AppBundleUsersVersion this report describes
Bloomily (family app)app.bloomily.parentfamilies1.7.56 (build 97)
Bloomily Centerapp.bloomily.staffschool staff3.0.97 (build 148)
Bloomily Kioskapp.bloomily.kioskfamilies at the door, staff2.0.20 (build 24)

Every row describes these three App Store versions. Each version's source was checked to contain every change this report relies on. The family app's 1.7.57 (build 98), waiting for Apple's review on the report date, carries the same accessibility code as 1.7.56. The earlier report (2026-09-27) marked some rows "Next release"; those changes have been in the App Store since 2026-09-27 and are part of the versions above.

Not covered: Bloomily Team (not released) and Bloomily Go (retired on 2026-09-09).

Report date

2026-10-10

Product description

The family app shows a child's day (daily reports, photos and videos, messages, calendar, billing, forms, incidents, check-in where a school allows it). Bloomily Center is the staff and office app (attendance, daily reports, observations, messaging, desk payments). Bloomily Kiosk is the tablet at a school's door where a family checks a child in and out with a phone number or PIN and a signature.

Contact information

accessibility@bloomily.app. We send a first reply within 2 business days.

Notes

Evaluation methods used

Bloomily's own testing, 2026-09-24 to 2026-10-10. Apple's accessibility audit on the sign-in doors, the family app's Home, Activity, Daily report, Calendar, Billing, Messages, More, check-in signature and album video screens, Center's sign-in, Today, History, Messaging, Settings, Absences, Media, Manage and its Children, Emergency contacts, Headcount, My schedule, Class attendance, Observations, Medications and Incidents screens, and the kiosk's welcome, phone, PIN, setup and timeout-warning screens, in light mode and, once (2026-09-29), in dark mode, paired before and after each change; accessibility-tree dumps of the family app's sign-in, Home, daily report, calendar, messages, billing and check-in; Center's Today screen at the second and third accessibility text sizes; a simulator session that opened a teacher video with checked captions in a demo school's album and read the caption shown during playback; unit tests for the kiosk timer, typed signature, calendar words, captions and colour tokens; a source lint that ratchets icon-only buttons without a name, system colours used as words, white on light fills, fonts under 11 pt and fields without a visible name; contrast computed with the WCAG 2.1 formula and, for field hints and list headers, measured on screenshots. The App Store versions were read from App Store Connect on 2026-10-10. Not done: VoiceOver on a device by a person, Full Keyboard Access with a hardware keyboard, Guided Access, iPad layouts of the family app, and Center screens a teacher cannot open (Programs, Desk, Payments, Dismissal and the office-only Manage rows).

Applicable standards and guidelines

Standard / guidelineIncluded in report
Web Content Accessibility Guidelines 2.0Level A: Yes. Level AA: Yes. Level AAA: No
Web Content Accessibility Guidelines 2.1Level A: Yes. Level AA: Yes. Level AAA: No
Web Content Accessibility Guidelines 2.2Level A and AA rows reported for information only; not part of the claim. Level AAA: No

Terms

Supports, Partially Supports, Does Not Support and Not Applicable as defined in the web report. Not Evaluated is used for no row.

WCAG 2.x report

Table 1: Success criteria, Level A

CriteriaConformance levelRemarks and explanations
1.1.1 Non-text Content (Level A)SupportsFamily app: every icon-only button is named (lint at 0), decorative symbols and avatars are hidden, and a photo is named by 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; a file name is never used. Center: icon-only buttons are named, and the check-in banner's symbol is hidden because the banner says it in words. Kiosk: named. 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; with the setting off it is named by its place and date only, because the school's caption stays with the tagged child's family.
1.2.1 Audio-only and Video-only (Prerecorded) (Level A)SupportsSupports when the school turns on Caption and describe the photos and videos teachers post and writes what happens in each video. The family app shows the school's description under the video, and for a video with no sound the description is the alternative. The product hosts no audio-only content.
1.2.2 Captions (Prerecorded) (Level A)SupportsSupports when the school turns on Caption and describe the photos and videos teachers post and checks each video's captions. The family app draws the checked captions on the picture in step with playback, follows the phone's Closed Captions setting, and offers a Captions button that says whether captions are on. Only captions a person at the school has checked are shown; a draft never reaches a family.
1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)SupportsSupports 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, with the transcript as one named element) form the media alternative.
1.3.1 Info and Relationships (Level A)SupportsFamily app: 91 headings (section titles on Home, Daily report, Billing, Messages, More, check-in, forms, the calendar month) and one fact per stop (status cards, report rows, timeline entries, threads, invoice rows). Center: sheet and section headings; roster rows read as one stop per child; the Desk floor card offers its "Extra attention" chip as an action; incident, enrollment and session rows are buttons. Kiosk: each step title is a heading.
1.3.2 Meaningful Sequence (Level A)SupportsThe accessibility tree follows the layout order on every dumped screen (the app writes elements in position order). Not verified by ear.
1.3.3 Sensory Characteristics (Level A)SupportsInstructions name the control ("Press Keep going to stay", "Type your name", "Sign here"); the kiosk names each step ("Step 1 of 2: Location").
1.4.1 Use of Color (Level A)SupportsCalendar event dots are spoken as words in each day's value ("1 event: Holiday"); status is spoken as text ("Checked", "Not checked", "Here", "Away"); a child who is not here is shown by a grey name and the words, not by the fade alone; kiosk PIN progress is a spoken value.
1.4.2 Audio Control (Level A)Not ApplicableNothing plays sound on its own.
2.1.1 Keyboard (Level A)Partially SupportsStandard SwiftUI controls are operable with Full Keyboard Access by the platform; calendar days, incident, enrollment and session rows and other tap targets are real buttons; every signature pad offers "Type your name". Custom views were not tested with a hardware keyboard.
2.1.2 No Keyboard Trap (Level A)SupportsNavigation is the platform's; the app captures no keyboard focus of its own.
2.1.4 Character Key Shortcuts (Level A)Not ApplicableNo keyboard shortcuts are defined.
2.2.1 Timing Adjustable (Level A)SupportsKiosk: a "Still there?" warning 20 seconds before the 120-second reset, with one button that restarts the full time, as often as needed; any touch, digit, letter, answer, stroke or field focus restarts it; a stroke in progress holds it; the success screen stays 20 seconds and, with VoiceOver on, until Done. Family app and Center: no time limits (sign-in codes last 24 hours).
2.2.2 Pause, Stop, Hide (Level A)SupportsThe kiosk welcome tiles and the medication row pulse only when the Reduce Motion setting is off, and stop when it is turned on; nothing else moves or updates on its own.
2.3.1 Three Flashes or Below Threshold (Level A)SupportsNothing flashes.
2.4.1 Bypass Blocks (Level A)SupportsSection titles are headings, so VoiceOver's rotor jumps between sections; the tab bar is the platform's.
2.4.2 Page Titled (Level A)SupportsEvery screen has a navigation title or a heading; kiosk steps announce their title when they appear.
2.4.3 Focus Order (Level A)SupportsElement order follows the layout; kiosk step changes move VoiceOver to the step's title; alerts are the platform's. Not verified by ear.
2.4.4 Link Purpose (In Context) (Level A)SupportsButtons and links say what they do ("See All events", "New Message", "Previous month").
2.5.1 Pointer Gestures (Level A)SupportsSignature pads offer "Type your name"; the family app's pickup list shows a Remove button beside the swipe; in Center, touch and hold on a daily-report activity, a draft observation or a child in a list opens a menu with the same actions as the swipe, so no swipe is needed.
2.5.2 Pointer Cancellation (Level A)SupportsStandard buttons act on release; the signature pad draws on touch because drawing needs it.
2.5.3 Label in Name (Level A)SupportsAccessible names contain the visible words ("See All events", "Include Ava", "Your Name", "Captions").
2.5.4 Motion Actuation (Level A)Not ApplicableNothing is operated by device motion.
3.1.1 Language of Page (Level A)SupportsThe apps are English and declare it.
3.2.1 On Focus (Level A)SupportsFocus never changes context.
3.2.2 On Input (Level A)SupportsChoosing a value never navigates by itself.
3.3.1 Error Identification (Level A)SupportsErrors are shown in text under the control or in a system alert; in the family app, sign-in, check-in, payment, booking, registration and form errors are also announced.
3.3.2 Labels or Instructions (Level A)SupportsEvery field has a name that VoiceOver reads ("Email", "Your name", "Type your full name", "4-digit PIN"), and the name stays shown above the field once something is typed; the consent sentence sits under every signature in both modes. A lint rule holds new fields to the same.
4.1.1 Parsing (Level A)Not ApplicableNot applicable to native software.
4.1.2 Name, Role, Value (Level A)SupportsFamily app: buttons, selected state on child, org, tab, RSVP, calendar day and signature mode, checked state on tick boxes, calendar days as buttons named by their full date, the Captions button with its on or off state, "Show what is said" with its expanded or collapsed state. Kiosk: PIN keys named by digit, the PIN row's value "2 of 4 digits entered", Delete named, mode tabs with selected state. Center: named controls, "Here" with selected state, "Away" as a value, the Desk card's chip as an action, rows that open a record as buttons.

Table 2: Success criteria, Level AA

CriteriaConformance levelRemarks and explanations
1.2.4 Captions (Live) (Level AA)Not ApplicableNo live media.
1.2.5 Audio Description (Prerecorded) (Level AA)SupportsSupports 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 phone's own voice read the school's description, then plays the clip from the start (extended description, W3C technique G8). It is offered only when a description exists and the phone has a voice.
1.3.4 Orientation (Level AA)SupportsThe family app and Center run in portrait and landscape on iPhone; all three apps run in every orientation on iPad.
1.3.5 Identify Input Purpose (Level AA)SupportsSign-in, one-time code, name and email fields declare their content type (63 sites, including sign-in and check-out). Not every registration field was checked.
1.4.3 Contrast (Minimum) (Level AA)Partially SupportsOrange buttons carry dark ink (7.22:1); orange, green, blue and every other system colour used as words use darker tokens, 4.5:1 or better on white, on the grouped grey and on their own tinted washes, in light and dark mode; the hint inside an empty field is 7.63:1; list headers and footers 6.84:1; status words 4.5:1 or better on their tints; "Not here" cards on Center's Today 6.84:1; avatar initials 4.60:1; white on a fill 5.38:1 or better. Every replaced pair is held by a unit test, and two lint rules refuse a system colour as text or white on a light fill. Gaps: the hint inside a search field and the day numbers in Apple's date picker are drawn by the system below 4.5:1; text that scrolls under the translucent tab bar; and Apple's audit still lists 406 findings across the 70 audited screen states, held by the ratchet so the count can only go down, of which the ones read are on controls Apple draws and the rest were not each read.
1.4.4 Resize Text (Level AA)SupportsText uses Dynamic Type styles and no fixed font is under 11 pt; text drawn at computed sizes (avatar initials, large counters) scales; calendar digits, the month title and weekday letters adapt up to the largest sizes; on Center's Today, every control in the header shows in full at the second accessibility size (about 235 %, beyond the 200 % this criterion asks for) and the top of the screen scrolls at the third size and larger; Manage subtitles and the check-in banner wrap at larger sizes.
1.4.5 Images of Text (Level AA)SupportsNo text is drawn as an image apart from logos and the rendered signature.
1.4.10 Reflow (Level AA)SupportsScreens scroll in one direction and adapt to the largest text sizes on the audited screens (clipped-text audit 7 to 0 on the calendar); Center's Today fits at the second accessibility size and scrolls at larger ones.
1.4.11 Non-text Contrast (Level AA)SupportsOrange icons and toggles use the 5.09:1 orange; glyphs on orange, green and the other fills are near-black or white at 3:1 or better on every stop of each gradient, in light and dark mode; unchecked rings, the overdue dot, the featured star and the ID tick are 3:1 or better.
1.4.12 Text Spacing (Level AA)Not ApplicableiOS provides no user setting for letter, word or paragraph spacing; text is not clipped when the platform's text size setting grows (see 1.4.4).
1.4.13 Content on Hover or Focus (Level AA)Not ApplicableNo hover; no content appears on focus alone.
2.4.5 Multiple Ways (Level AA)Not ApplicableApp screens are not a set of pages.
2.4.6 Headings and Labels (Level AA)SupportsSection headings and field labels describe their content.
2.4.7 Focus Visible (Level AA)SupportsThe system focus indicator (VoiceOver cursor, Full Keyboard Access ring) is never suppressed (no focusable(false) in the source).
3.1.2 Language of Parts (Level AA)Not ApplicableThe apps are English; a school's message in another language is the school's content and is shown as written.
3.2.3 Consistent Navigation (Level AA)SupportsTabs and screen structure are the same on every visit.
3.2.4 Consistent Identification (Level AA)SupportsThe same controls carry the same names across screens.
3.3.3 Error Suggestion (Level AA)SupportsError text says what to fix.
3.3.4 Error Prevention (Legal, Financial, Data) (Level AA)SupportsPayments go through Stripe's sheet with the amount shown before confirming; a kiosk check-in can be reversed by a check-out; incident acknowledgements and form sign-offs show what is signed before the signature.
4.1.3 Status Messages (Level AA)SupportsFamily app: 45 announcement sites (sign-in errors, "Code sent", check-in progress and result, payment results, booking and registration results, "Message sent", "Saved to Photos", form submitted); the signature pad announces "Signature added" and "Signature cleared"; kiosk steps, PIN progress and the result are announced; Center announces its on-screen error lines, 23 more inline messages found by a search of the source, and the desk toast. Not verified by ear.

WCAG 2.2 criteria (information only, not part of the claim)

CriteriaConformance levelRemarks and explanations
2.4.11 Focus Not Obscured (Minimum) (Level AA)SupportsThe check-in signature step scrolls so the keyboard never covers the field; no bar covers focused content.
2.5.7 Dragging Movements (Level AA)Supports"Type your name" beside every drawn signature.
2.5.8 Target Size (Minimum) (Level AA)SupportsKiosk targets are 44 pt; calendar month arrows are 44 pt; the sign-in links, the password eye, Billing's "View All" and the kiosk setup links have hit areas of 24 pt or more without moving anything on screen.
3.2.6 Consistent Help (Level AA)Not ApplicableNo help mechanism repeats across screens.
3.3.7 Redundant Entry (Level AA)SupportsCheck-in and check-out reuse the signer's name for the typed signature; forms keep what was typed.
3.3.8 Accessible Authentication (Minimum) (Level AA)SupportsSign-in by emailed code or password; codes can be pasted; no puzzle.

This report describes Bloomily's own testing of the versions 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.