Accessibility and field use

Built for Gloves, Glare, Noise, and Dirty Hands

Anvil Field is designed for direct sun, one hand busy, low battery, poor signal, and a three-second capture window. Accessibility is the field reality, not a checkbox.

Field conditions

Gloves

Capture buttons are large, the shutter is larger, list rows stay tall, and HintCard Accept/Edit/Dismiss 56dp each. Tappable spacing keeps destructive actions away from primary actions.

Glare / direct sun

High-Contrast is one tap in Capture. High-contrast tokens use pure borders and readable text; confidence tiers carry icon + word, never color alone.

Noise

Nothing critical depends on sound. Success, waiting, and error states are visual, textual, and haptic-capable; voice degrades to typing.

Dirty / wet hands

Capture is tap-first, onboarding is chip-pick, delete confirms before destruction, and voice entry on every text field gives the crew member a hands-busy path.

One-handed

The capture to finish flow keeps primary actions in thumb reach, including camera, notes, checklist, packet, and share checks.

Low battery

Capture is local-first, calculators use local table math, no forced sync runs during capture, and Reduce Motion plus High-Contrast reduce visual load.

Weak / no signal

Every primary action writes locally first. Offline capture, packets, exports, and running any calculation never wait on the network.

Cold / rain

No long-press is the only path, no precise drag is required, and visible buttons exist for reorder and recovery actions.

Hurry (3-second window)

Camera capture has no per-photo dialog; hints cost 0 extra taps and never interrupt capture. Screen budget follows SCREEN_ECONOMY.md.

Large text and Dynamic Type

18dp

Base body text is 18dp for arm's-length reading in sun.

200%

Settings includes a field text size control for 100%, 130%, and 200%. At 200% buttons stack vertically, content scrolls, and labels stay readable.

See-the-Math state honors 200% too:

Formulas wrap line by line, substituted values remain visible, and table rows linearize instead of requiring pinch zoom.

Primary labels

Action labels do not truncate. The layout grows, wraps, or stacks so verbs remain complete.

Screen reader and motor access

Action labels

Controls name the action, not the icon: add before photo, save site note, send packet by text, or use the suggested number.

HintCards read in trust order:

Tier word first, then value, then basis, then See the Math, Use this number, and Dismiss controls.

Polite save announcements

Save status changes announce local-save truth such as saved locally and will sync when online.

Visible equivalents

No action requires a multi-finger gesture, precise drag, or timed long-press as its only path.

Color, contrast, and tier safety

BEFORE/AFTER

Photos carry printed words plus icons, so a grayscale or cracked screen still tells the stage.

Tiered confidence is icons + words, sunlight-tested:

✓ Nominal, △ Advisory, and ⚠ Alert use distinct silhouettes and words. In Spanish, tier words include Nominal/Aviso/Alerta.

Route/readiness variants

Operational status chips use words like Ready / Missing 2 / Not ready and Steady / Climbing / Cooling rather than pass/fail color.

High-Contrast

High-Contrast drops tint fills, keeps glyph plus word plus 2px border, and is available in the Capture toolbar.

Denied permissions still work

Camera

Add Photo From Library binds existing shots to the visit when the camera is denied.

Microphone

Type instead. Every voice affordance has a text twin.

Location

Type or confirm the address manually; route order falls back to saved order.

Storage / Photos

App-private capture continues; only export or library import explains the affected permission.

Notifications

Optional. Denial does not block capture, sync, share, export, or calculations.

Language and literacy

Crew language

Each teammate can choose EN / ES in Settings. That choice is separate from the packet language the owner sends to the customer.

Fully translated:

Chrome, checklists, training cards, prep-request templates, waiting/success/error copy, confidence-tier words, and read-aloud output.

FIELD_WORDS_GLOSSARY.md

Trade vocabulary comes from checked EN/ES field-word pairs, not blind machine output.

Never auto-translated:

User notes and customer-facing packets require an explicit Translate action and a check-before-use label.

Inline card flip:

Checklist and training cards carry EN/ES chip flipping so mixed crews can coach across the language line.

Job/Visit

Field terms stay plain: property, job, visit, photos, notes, checklist, packet, export, and working record.

Voice as access

Voice entry

A mic control is added to eligible text inputs. Local STT fills editable text; audio evidence remains bound on Voice Note.

Recording state

Recording shows a red band, the word Recording, waveform, and start/stop haptic-ready state for deaf/HoH and noisy settings.

Read-aloud for handover:

Checklists, handover notes, remaining items, and short readiness outputs can be read aloud, repeated, and interrupted.

Text twin

Voice never becomes a wall. STT is never required to complete a flow.

Field-use acceptance tests

Glove test

Complete capture to packet to send while wearing work gloves, including accepting and dismissing a HintCard.

Sun test

Read every status and tier chip in midday sun with High-Contrast on.

One-hand test

Install to first packet using only the thumb of the holding hand.

No-signal test

Full flow in airplane mode, including a calculator run with See-the-Math and truthful SaveStatusPill copy.

Large-text test

Full flow at 200%, with no clipped or overlapped controls.

Denied-permission test

Deny camera, mic, location, and storage; still create a property, capture from library, finish, send, and run a calc.

Low-battery test

Flow completes without forced background uploads draining the battery.

Spanish test

An ES-set crew member completes invite to checklist visit to submit entirely in Spanish, including read-aloud.

Read-aloud test

Handover list reads aloud at arm's length; repeat works and interruption resumes.

Grayscale test

Every tier, status, and before/after distinction remains unambiguous without color.