Accessibility Conformance Report

brianbeals.com · VPAT® 2.5 WCAG Edition · October 8, 2026

Superseded. This is the report as issued on October 8, 2026. The report that replaced it is the October 10, 2026 re-evaluation, and the current report is newer still. Since issue, this page has moved to its own address and gained a distinct title and this notice. The evaluation is unchanged.

Product and vendor information

Product
brianbeals.com
Report date
October 8, 2026
Vendor
Brian Beals, LLC
Contact
brian@brianbeals.com
Pages evaluated
30
Scan date
2026-10-08

Changes since the prior report

This report is a re-evaluation. The prior report is dated August 30, 2026, published at https://brianbeals.com/conformance-report-2026-08-30.html. Every page and document below was evaluated again against the site as it stood on October 8, 2026.

What changed on the site

What changed in the verdicts

What the screen reader pass added

A screen reader pass across 12 page(s), new in this evaluation. The criteria it decided:

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.

Evaluation methods used

Screen reader testing

Screen reader results by page
PageWhat was testedResultNotes
/reading from the top, the skip link, landmark navigation, heading navigation, the links list, how the brand mark is announcedPassEvery check passed or did not apply. Read from top: "VoiceOver on Safari Personal — Brian Beals | AI, Analytics & Automation window Brian Beals | AI, Analytics & Automation web content has keyboard focus You are currently on a link, inside of web content. To click this link, press Caps Lock-Space. To exit this web area, press Caps Lock-Shift-Up Arrow."
/aboutreading from the top, the skip link, landmark navigation, heading navigation, the links list, how the brand mark is announcedPassEvery check passed or did not apply.
/accessibilityreading from the top, the skip link, landmark navigation, heading navigation, the links list, how the brand mark is announcedPassEvery check passed or did not apply.
/accessibility/healthcarereading from the top, the skip link, landmark navigation, heading navigation, the links list, how the brand mark is announcedPassEvery check passed or did not apply.
/contactreading from the top, the skip link, landmark navigation, heading navigation, the links list, how the brand mark is announcedPassEvery check passed or did not apply.
/documentsreading from the top, the skip link, landmark navigation, heading navigation, the links list, how the brand mark is announcedPassEvery check passed or did not apply.
/writingreading from the top, the skip link, landmark navigation, heading navigation, the links list, how the brand mark is announcedPassEvery check passed or did not apply.
/writing/who-could-afford-to-find-outreading from the top, the skip link, landmark navigation, heading navigation, the links list, how the brand mark is announcedPassEvery check passed or did not apply. The mark check crossed the header lockup, where no mark is announced. The essay byline's mark further down was exposed as an image named "Brian Beals" at the time of the pass and was hidden after it; that change is verified in the accessibility tree, not by ear.
/sitemap-pagereading from the top, the skip link, landmark navigation, heading navigation, the links list, how the brand mark is announcedPassEvery check passed or did not apply.
/conformance-report.htmlreading from the top, the skip link, landmark navigation, heading navigation, the links list, how the brand mark is announcedPassEvery check passed or did not apply. Tested as published on the morning of October 8, 2026, which was the August 30 report. This re-evaluation is generated from the same template with three additions: the changes section, the screen reader table, and a site map link in the footer.
/capability-statement-accessibility.htmlreading from the top, the skip link, landmark navigation, heading navigation, the links list, how the brand mark is announcedPassEvery check passed or did not apply. A standalone document: banner, main and contentinfo landmarks, no navigation landmark.
/capability-statement-state-local.htmlreading from the top, the skip link, landmark navigation, heading navigation, the links list, how the brand mark is announcedPassEvery check passed or did not apply. A standalone document: banner, main and contentinfo landmarks, no navigation landmark.

Not covered by the screen reader pass. Mobile screen readers (VoiceOver on iOS, TalkBack on Android) and Windows screen readers (JAWS, NVDA) were not used. The 12 pages cover every page template on the site except /tools/voice-critique, the one page with a button and a status message, which was not in the screen reader sample; the other 16 pages share a template with a page that was tested.

Limitation on assistive technology testing. The screen reader pass did not decide 4.1.3. It was 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 ContentASupportsEvery content image carries descriptive alt text: the principal's photograph on the home and about pages, and five wildlife and travel photographs on /elsewhere. The BB brand mark is hidden from assistive technology wherever it appears, because it sits beside text that already names the company. The essay byline was the exception: its mark was exposed as an image named "Brian Beals" directly before a byline beginning with the same name, so the name was announced twice. Hidden on October 8, 2026 and re-checked in the accessibility tree. https://brianbeals.com/accessibility: svg%3E marked decorative https://brianbeals.com/accessibility/healthcare: svg%3E marked decorative https://brianbeals.com/accessibility/maryland: svg%3E marked decorative
1.2.1 Audio-only and Video-only (Prerecorded)ANot ApplicableNo audio or video elements across 30 pages.
1.2.2 Captions (Prerecorded)ANot ApplicableNo audio or video elements across 30 pages.
1.2.3 Audio Description or Media AlternativeANot ApplicableNo audio or video elements across 30 pages.
1.3.1 Info and RelationshipsASupportsLandmarks on every page, one h1 per page, and no heading level skips across all 29 pages. Lists, definition lists, tables, the quotation on /accessibility/healthcare and the preformatted blocks on /writing/sixty-cents-a-year and /tools/voice-critique all use the matching element. No bold or oversized text stands in for a heading and no typed bullet stands in for a list, including in the three essays published since the prior report. One capability statement had a span inside a definition list; fixed October 8, 2026 and rescanned. All six published documents are tagged, declare a language, carry a usable title, and label their figures. Screen reader: Landmarks and headings walked with the rotor on all 12 pages: each landmark announced once, exactly one level 1 heading per page, no skipped levels. Landmarks present, one h1 per page, no heading level skips. All 6 document(s) evaluated are tagged, declare a language, carry a usable title, and label their figures. All 6 were also validated against ISO 14289-1 with veraPDF and raised nothing that maps to a success criterion.
1.3.2 Meaningful SequenceASupportsSettled by listening. On October 8, 2026 Brian Beals read the newest essay, /writing/who-could-afford-to-find-out, and /capability-statement-accessibility-healthcare.html straight through with VoiceOver on macOS 27 in Safari; the spoken order carries the same meaning as the visual layout, including the statement's main column then sidebar. The August 29, 2026 pass read the prior page set the same way. The remaining pages were re-checked on October 8 by comparing source order with visual order: no CSS reordering anywhere, and the keyboard pass moved strictly down every page. The listen also found that a sentence period inside bold text made VoiceOver spell the following word; that is not a sequence failure, and the pattern was removed from the site the same day. Not determinable by scanning.
1.3.3 Sensory CharacteristicsASupportsNo instruction depends on shape, size, position, or sound. Every positional word on the 29 pages either describes prose rather than instructing, or points to content that follows in reading order, as in "copy the prompt below" on /tools/voice-critique, where the prompt is the next item and the button is named Copy prompt. Not determinable by scanning.
1.4.1 Use of ColorASupportsColor is never the sole carrier of meaning. Links inside running text are underlined. The links on /writing are whole cards (title, date, summary) in a list rather than links inside a sentence, so there is no surrounding text that color would have to distinguish them from. No status or category is shown by color without a text label. Not determinable by scanning.
1.4.2 Audio ControlANot ApplicableNo audio or video elements across 30 pages.
2.1.1 KeyboardASupportsEvery interactive element is a native link or button, and each was reached by Tab on all 29 pages. The one button, Copy prompt on /tools/voice-critique, is native, and the scrollable prompt beside it takes focus so it can be scrolled from the keyboard. No click handlers sit on non-interactive elements. All interactive elements are native and focusable.
2.1.2 No Keyboard TrapASupportsOn each of the 29 pages, Tab was pressed from the top through every focusable element until focus left the page, then Shift+Tab walked back the same way. Focus never stuck. No page carries a modal, an iframe, or a third-party embed. Not determinable by scanning.
2.1.4 Character Key ShortcutsANot ApplicableNo single-character key shortcuts. The site's source registers no keyboard handler of its own on any page. Not determinable by scanning.
2.2.1 Timing AdjustableANot ApplicableNo time limits. No session timeout, auto-advancing content, meta refresh, or media anywhere. The Copy prompt button's label reverts two seconds after a copy, which confirms an action and does not limit the user. 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 BlocksASupportsScreen reader: On all 12 pages the skip link was the first Tab stop, Return moved to the main landmark, and the next Tab landed inside main rather than back in the header. Skip link present, first in tab order, target exists and is focusable.
2.4.2 Page TitledASupportsAll 30 pages carry a unique, non-empty title. All 6 document(s) evaluated are tagged, declare a language, carry a usable title, and label their figures. All 6 were also validated against ISO 14289-1 with veraPDF and raised nothing that maps to a success criterion.
2.4.3 Focus OrderASupportsNo positive tabindex anywhere. On all 29 pages the keyboard pass moved forward through source order and down the page, never jumping back up. 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 CancellationASupportsAll pointer interaction is standard activation on native links and one native button. The site's source registers no mouse-down, pointer-down, or touch handler. 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 30 pages. All 6 document(s) evaluated are tagged, declare a language, carry a usable title, and label their figures. All 6 were also validated against ISO 14289-1 with veraPDF and raised nothing that maps to a success criterion.
3.2.1 On FocusASupportsConfirmed during the keyboard pass on all 29 pages: the address never changed and no content appeared while focus moved. Nothing navigates, opens, or submits on focus. Not determinable by scanning.
3.2.2 On InputANot ApplicableNo form controls exist on any of the 29 pages, so no change of context on input is possible. Scope note: the evaluated set is the 29 public pages reachable from the site's sitemap and navigation. The site also carries two unlinked pages with form controls, /login and /tools/account-intel, which no public page links to and which were not in this evaluation. They are named here rather than omitted. Not determinable by scanning.
3.3.1 Error IdentificationANot ApplicableNo form controls and therefore no error states on any of the 29 pages. Scope note: the evaluated set is the 29 public pages reachable from the site's sitemap and navigation. The site also carries two unlinked pages with form controls, /login and /tools/account-intel, which no public page links to and which were not in this evaluation. They are named here rather than omitted. 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, ValueASupportsScreen reader: Every link in the rotor's link list announced a name and the link role on all 12 pages. No page in the sample has a form control or a control with state, so name, role, and value were heard for links only. Every control has a non-empty accessible name in the browser accessibility tree. Custom widget state needs AT confirmation. 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 30 pages.
1.2.5 Audio Description (Prerecorded)AANot ApplicableNo audio or video elements across 30 pages.
1.3.4 OrientationAASupportsNo CSS locks or rotates content by orientation.
1.3.5 Identify Input PurposeAANot ApplicableNo form controls exist on any of the 29 pages, so there is no input purpose to identify. Scope note: the evaluated set is the 29 public pages reachable from the site's sitemap and navigation. The site also carries two unlinked pages with form controls, /login and /tools/account-intel, which no public page links to and which were not in this evaluation. They are named here rather than omitted. Not determinable by scanning.
1.4.3 Contrast (Minimum)AASupportsZero failures across 30 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 images in the evaluated set are photographs (the principal on two pages, five wildlife and travel photographs on /elsewhere) and the BB brand mark, which is a logo and exempt. No text is presented as an image anywhere in the evaluated set. Not determinable by scanning.
1.4.10 ReflowAASupportsNo horizontal scrolling at a 320px viewport on any of 30 pages.
1.4.11 Non-text ContrastAASupportsControl borders and the focus indicator clear 3:1 in both color schemes, measured by the scan. No icon or state indicator carries meaning on its own. 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. Every link and button on the 29 pages was hovered and focused in turn and nothing new appeared. There are no title tooltips, popovers, or dialogs. Not determinable by scanning.
2.4.5 Multiple WaysAASupportsA human-readable site map at /sitemap-page is linked from every one of the 30 pages evaluated, giving a second route to any page alongside the global navigation.
2.4.6 Headings and LabelsAASupportsHeadings were read as an outline on all 29 pages, and each names the section beneath it: essay headings are full phrases, capability statement headings name their block (Company Snapshot, NAICS, Services). The VoiceOver pass heard the heading lists out of context on 12 pages. No page has a form field, so there are no field labels to judge. Screen reader: Heading lists heard out of context through the rotor on all 12 pages; each heading made sense read alone. No page in the sample has a form field. 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 NavigationAASupportsThe 22 site pages share one header with the same six navigation links in the same order, from one layout component. The six capability statements and this report are standalone documents with no navigation menu; each ends with a footer linking the site map. Not determinable by scanning.
3.2.4 Consistent IdentificationAASupportsComponents with the same function carry the same name throughout: the skip link reads "Skip to main content" on all 29 pages, the site map link reads "Site map" on every page that carries one, and the six navigation links are named identically on all 22 site pages. Not determinable by scanning.
3.3.3 Error SuggestionAANot ApplicableNo form controls and therefore no errors to suggest corrections for. Scope note: the evaluated set is the 29 public pages reachable from the site's sitemap and navigation. The site also carries two unlinked pages with form controls, /login and /tools/account-intel, which no public page links to and which were not in this evaluation. They are named here rather than omitted. Not determinable by scanning.
3.3.4 Error Prevention (Legal, Financial, Data)AANot ApplicableThe site takes no legal, financial, or data-modifying commitment. Nothing is submitted, purchased, or deleted. Not determinable by scanning.
4.1.3 Status MessagesAASupports1 live region(s). All exist before their content, stay visible, and keep node identity when text changes. Announcement itself requires a screen reader. Assessed without assistive technology; see the limitation above. 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.