Accessibility Conformance Report

brianbeals.com · VPAT® 2.5 WCAG Edition · August 14, 2026

Product and vendor information

Product
brianbeals.com
Report date
August 14, 2026
Vendor
Brian Beals, LLC
Contact
brian@brianbeals.com
Pages evaluated
15
Scan date
2026-08-14

Applicable standards

WCAG 2.1 Level A and AA, all 50 criteria. Section 508 incorporates WCAG 2.0 Level AA, a strict subset, so conformance below satisfies it. ADA Title II adopts WCAG 2.1 Level AA directly. Level AAA was not evaluated.

Limitation on assistive technology testing. This evaluation did not include screen reader testing. Criteria that depend on assistive technology behavior (4.1.2) were assessed by inspecting the browser accessibility tree and observing the DOM conditions that determine whether a change is announced. Those conditions were satisfied, which is a strong indicator and not the same as hearing the announcement.

WCAG 2.1 Level A

Success criteria, Level A
CriterionLvlConformanceRemarks and explanations
1.1.1 Non-text ContentASupportsThe only image added is the BB brand mark, empty alt, decorative beside text that already names the company.'' https://brianbeals.com/accessibility: svg%3E marked decorative All 4 document(s) evaluated are tagged, declare a language, carry a usable title, and label their figures.
1.2.1 Audio-only and Video-only (Prerecorded)ANot ApplicableNo audio or video elements across 15 pages.
1.2.2 Captions (Prerecorded)ANot ApplicableNo audio or video elements across 15 pages.
1.2.3 Audio Description or Media AlternativeANot ApplicableNo audio or video elements across 15 pages.
1.3.1 Info and RelationshipsASupportsLandmarks, one h1 per page and no level skips confirmed on every page evaluated. Lists use list elements. No data tables in the product. Landmarks present, one h1 per page, no heading level skips. All 4 document(s) evaluated are tagged, declare a language, carry a usable title, and label their figures.
1.3.2 Meaningful SequenceASupportsReading order follows DOM order. No CSS positioning or flex ordering reverses the sequence of meaningful content. Not determinable by scanning.
1.3.3 Sensory CharacteristicsASupportsNo instruction depends on shape, size, position, or sound. Not determinable by scanning.
1.4.1 Use of ColorASupportsBody links are underlined, so color is not the sole means of identifying them. Status messages pair color with text. Not determinable by scanning.
1.4.2 Audio ControlANot ApplicableNo audio or video elements across 15 pages.
2.1.1 KeyboardASupportsAll interactive elements are native anchor, button or input. The one scrollable region was made focusable during this evaluation. Operated end to end by keyboard. All interactive elements are native and focusable.
2.1.2 No Keyboard TrapASupportsNo modal dialogs and no custom focus management. Tab traversal exits every component and reaches browser chrome. Not determinable by scanning.
2.1.4 Character Key ShortcutsANot ApplicableNo single-character keyboard shortcuts are implemented. Not determinable by scanning.
2.2.1 Timing AdjustableANot ApplicableNo time limit is imposed on any user interaction. The authenticated tool holds a session cookie but does not expire a task in progress. Not determinable by scanning.
2.2.2 Pause, Stop, HideANot ApplicableNo animated, moving, or auto-updating content.
2.3.1 Three Flashes or Below ThresholdASupportsNo animation anywhere, so nothing can flash.
2.4.1 Bypass BlocksASupportsSkip link present, first in tab order, target exists and is focusable.
2.4.2 Page TitledASupportsAll 15 pages carry a unique, non-empty title. All 4 document(s) evaluated are tagged, declare a language, carry a usable title, and label their figures.
2.4.3 Focus OrderASupportsFocus order matches visual order and no positive tabindex is used anywhere. Confirmed by keyboard traversal. No positive tabindex anywhere; DOM order governs.
2.4.4 Link Purpose (In Context)ASupportsEvery repeated link name resolves to one destination, so each has a single unambiguous purpose. Consistent naming across routes is required by 3.2.4. https://brianbeals.com/sitemap-page: 'About' repeats, all to https://brianbeals.com/about https://brianbeals.com/sitemap-page: 'Accessibility' repeats, all to https://brianbeals.com/accessibility
2.5.1 Pointer GesturesANot ApplicableNo path-based or multipoint gesture detected: no touch or motion handlers, draggable elements, slider roles, or map containers.
2.5.2 Pointer CancellationASupportsNative controls only, which activate on the up event and can be aborted by moving off the target. Not determinable by scanning.
2.5.3 Label in NameASupportsEvery aria-label contains its element's visible text, so speech input users can target controls by what they see.
2.5.4 Motion ActuationANot ApplicableNo device motion handler detected: no touch or motion handlers, draggable elements, slider roles, or map containers.
3.1.1 Language of PageASupportslang set on all 15 pages. All 4 document(s) evaluated are tagged, declare a language, carry a usable title, and label their figures.
3.2.1 On FocusASupportsFocusing a control changes no context. Not determinable by scanning.
3.2.2 On InputASupportsChanging a field value triggers no automatic context change. Forms submit only on explicit activation. Not determinable by scanning.
3.3.1 Error IdentificationASupportsLogin failure is described in text, not by color alone, inside a role=alert region referenced by the field through aria-describedby. Not determinable by scanning.
3.3.2 Labels or InstructionsASupportsEvery form control carries a label or an explicit accessible name.
4.1.1 ParsingASupportsNo duplicate id values. Obsolete and removed in WCAG 2.2. Reported for 2.1 completeness only.
4.1.2 Name, Role, ValueASupportsEvery control has a non-empty accessible name in the browser accessibility tree. Custom widget state needs AT confirmation. Assessed without assistive technology; see the limitation above. Scan reads the real accessibility tree. Custom widgets still need AT confirmation of state changes.

WCAG 2.1 Level AA

Success criteria, Level AA
CriterionLvlConformanceRemarks and explanations
1.2.4 Captions (Live)AANot ApplicableNo audio or video elements across 15 pages.
1.2.5 Audio Description (Prerecorded)AANot ApplicableNo audio or video elements across 15 pages.
1.3.4 OrientationAASupportsNo CSS locks or rotates content by orientation.
1.3.5 Identify Input PurposeAASupportsThe password field carries autocomplete=current-password. The company name field collects no information about the user and is outside the criterion's input purpose list. Not determinable by scanning.
1.4.3 Contrast (Minimum)AASupportsZero failures across 15 pages in both color schemes.
1.4.4 Resize TextAASupportsNo viewport restriction on zoom, and no fixed-height text containers (confirmed by the 1.4.12 spacing override producing no clipping).
1.4.5 Images of TextAASupportsThe only image in the product is a photograph. All headings, statistics and labels are live text. Not determinable by scanning.
1.4.10 ReflowAASupportsNo horizontal scrolling at a 320px viewport on any of 15 pages.
1.4.11 Non-text ContrastAASupportsForm control borders measure 4.2:1 on the deployed page and the focus indicator measures 4.73:1, both against a 3:1 requirement. Decorative heading bullets are removed from the accessibility tree and carry no information, so they are exempt. Control borders and focus indicator all clear 3:1.
1.4.12 Text SpacingAASupportsNo clipping or scrolling with the 1.4.12 override values applied.
1.4.13 Content on Hover or FocusAANot ApplicableNo content appears on hover or focus. Hover changes only link underline state, which adds no content. Not determinable by scanning.
2.4.5 Multiple WaysAASupportsA human-readable site map at /sitemap-page is linked from every one of the 15 pages evaluated, giving a second route to any page alongside the global navigation.
2.4.6 Headings and LabelsAASupportsHeadings describe their sections and labels describe their controls. The heading outline for every page was reviewed. Not determinable by scanning.
2.4.7 Focus VisibleAASupportsVisible focus indicator confirmed under a real keyboard press.
3.1.2 Language of PartsAASupportsNo passage declares a language other than the page language. A passage in another language with no lang attribute cannot be detected by scanning; none was observed in review.
3.2.3 Consistent NavigationAASupportsNavigation is rendered from a single shared layout, so its content and order are identical on every page by construction. Not determinable by scanning.
3.2.4 Consistent IdentificationAASupportsComponents with the same function carry the same name throughout. Not determinable by scanning.
3.3.3 Error SuggestionAASupportsThe only error condition is an incorrect password, where a correction cannot be suggested without disclosing credential information. The error is clearly identified in text. Not determinable by scanning.
3.3.4 Error Prevention (Legal, Financial, Data)AANot ApplicableThe product creates no legal commitment, processes no financial transaction, and lets users modify no stored data. Not determinable by scanning.
4.1.3 Status MessagesAANot ApplicableNo status messages in the product. Scan verifies the DOM conditions that make an announcement possible. Hearing it requires a screen reader; the ACR states which was done.

This is a self-assessment unless stated otherwise. It was not produced by an independent third-party auditor. A contracting officer requiring independent verification should request a third-party audit.