Research — Accessibility · Early Access
PROWAG checks for curb ramps, sidewalks and crosswalks, with the citation behind every threshold.
A library of 26 deterministic check functions against PROWAG (Public Right-of-Way Accessibility Guidelines), covering scoping (R201–R214), pedestrian access routes, curb ramps, detectable warnings, crosswalks, signals, transit stops and parking (R301–R311), and protruding objects, operable parts, ramps, stairs, handrails and signs (R401–R410). Each check returns pass/fail, the violations, notes on anything skipped for missing input, the cited section, and a regulatory-status tag, since PROWAG is only enforceable where DOJ or USDOT have adopted it.
PROWAG
Interactive demos
- Crosswalk timing: the long street →Stretch a street and watch the clock: a pedestrian crosses at the harness walking speed while the walk interval and the flashing clearance countdown run and cars wait at the stop line. She clears the street or is caught in it; a median island with its own button splits the crossing. Six stories plus free play on the exported grid and tables. Illustrative geometry, v1 draft, unvalidated harness.Auto ▶
- One corner, eight checks →A wheelchair rolls one street corner and stops at the first failing check among eight: sidewalk, pole in the route, ramp count, curb ramp, warning surface, crossing timing and pushbutton.Auto ▶
- Curb ramp slope, width and landing →Drag running and cross slope, run length, clear width and landing; to-scale profile and plan against PROWAG R304. Auto page sweeps running slope through the 1:12 limit.Auto ▶
- Detectable warning dome geometry →Drag dome base and top diameter, height, spacing and surface extent on a true-inch dome grid against PROWAG R305. Auto page sweeps surface extent through the 24 in minimum.Auto ▶
See harnesses →the toolsets that sit on top of these functions.
What it can do
check_curb_rampPerpendicular, parallel and blended-transition curb ramps (R304): running slope 1:12 (1:20 for blended), cross slope 1:48, clear width, landing, clear area, flares and gutter grade break.
check_detectable_warningTruncated-dome geometry and placement (R305): base diameter, top diameter, height exactly 0.2 in, spacing, 24 in surface extent, and location by ramp, island or rail-crossing context.
check_sidewalk_slopeSidewalk running and cross slope and continuous clear width (R302), including the adjacent-roadway-grade exception.
check_crosswalkCrosswalk pedestrian signal timing and roundabout/multilane treatments (R306).
check_rampRamp geometry (R407), delegating handrail checks to check_handrail (R409).
check_on_street_parking_scopingHow many accessible on-street parking spaces are required (R211, Table R211).
prowag_propose_fixFor a failing check, the slope, width, length, height or timing that passes the same check when re-run, with what else it changes (a flatter slope can mean regrading or a longer run). Scoping facts and technically-infeasible claims are never changed.
A worked case
Input
Perpendicular curb ramp, running slope 10 %, cross slope 1 %, run length 10 ft.
Result
Not compliant — running slope 10% exceeds the 8.33% maximum (PROWAG R304.2.1), and the run is under the 15 ft the length exception requires. A run of 15 ft or more is exempt from the running-slope cap under the harness’s reading of the length exception; that exemption has no upper bound, which the validation sheet flags as an open question.
Where this stands
v1 draft, unvalidated. No domain expert (ADA/accessibility consultant or city ADA coordinator) has reviewed this code yet. An AI-assisted pre-review across all 26 functions is a QA pass, not a sign-off.
Open questions
- Whether the unbounded 15 ft length exception for curb ramp running slope is right to automate.
- Whether the 0.2 in dome height should be an exact match with zero tolerance, given manufacturing variance.
- Whether the zero-tolerance placement rule for parallel curb ramp detectable warnings is correct.
- Alterations and technical-infeasibility exceptions are not modeled by these functions.