Chamber Culture CRM

Accessibility Conformance Report

The full VPAT® 2.5 report, covering WCAG 2.2 Level A and AA and Revised Section 508. Published complete, including the criteria we have not yet evaluated.

Download the PDF

· Reviewed at least quarterly, next by

Accessibility Conformance Report

Voluntary Product Accessibility Template® (VPAT®) Version 2.5

About this report

A VPAT is a procurement and legal document. A buyer's accessibility or legal team may rely on it, and in public-sector procurement an inaccurate VPAT can be treated as a misrepresentation. Everything below is therefore either measured or marked as not measured.

What is measured. Automated testing with axe-core against WCAG 2.0, 2.1 and 2.2 Level A and AA across twelve representative pages spanning all three surfaces, plus scripted measurement of reflow at 320px, text resize to 200%, the WCAG text-spacing overrides, input-purpose coverage, and keyboard focus visibility. See Evaluation Methods.

What is not. Automated tooling catches roughly a third of WCAG issues. Criteria marked Not Evaluated genuinely have not been tested and need a human with a screen reader. We have not commissioned a third-party audit and we do not claim full AA conformance. That matches our public statement at https://crm.chamberculture.com/accessibility, and the two documents are meant to agree.


Name of Product/Version

Chamber Culture CRM, version 1.2.0, a hosted web application.

This report evaluates the release tagged 1.2.0. Because the product is hosted rather than installed, every chamber runs that version: there is no older release still in the field, and an accessibility fix reaches every customer at once rather than waiting for a site to upgrade. Each release carries notes describing what changed, published in the product under Releases and available to prospective customers on request.

This report is reissued on any material accessibility change, and reviewed quarterly regardless.

As of 12 August 2026.

Report Date

12 August 2026.

Two remediation rounds have landed since this report was first drafted on 8 August 2026. Every figure below is post-fix and re-measured rather than projected. See the Remediation Log.

Product Description

Chamber Culture CRM is a multi-tenant, browser-based membership management platform for chambers of commerce. It covers member and contact records, membership dues and invoicing, online payments, events and ticketing, email and SMS communications, appointment booking, member-submitted content moderation, reporting, and a public-facing chamber website and business directory.

The product has three distinct user-facing surfaces, and their accessibility differs. This report covers all three and says which is which:

Surface Who uses it Notes
Staff CRM Chamber employees, signed in The administrative application
Member portal Member businesses, signed in Self-service for a chamber's members
Public chamber site The general public, no login Directory, events, booking, join

The public chamber site is the surface most likely to be subject to a public-sector accessibility obligation, because it is what a chamber's own community uses.

Contact Information

  • Vendor: Champlin Enterprises, LLC
  • Address: 1449 S Michigan Ave, Ste 13946, Chicago, IL 60605, United States
  • Accessibility contact: [email protected], with accessibility in the subject line

That address is monitored by the people who build the product, not by a ticket queue. Our commitment, published in the product's own help guide and repeated here so a buyer can hold us to it: a reply within one business day, and anything blocking a disabled user from doing their job is treated as a defect rather than a feature request.

If email is not a workable channel for a given user, we will use whichever one is, including telephone on the number published in the product footer.

Notes

This report is a self-assessment. Chamber Culture CRM has not undergone a third-party accessibility audit. This is consistent with the product's public accessibility statement at /accessibility, which states the target is WCAG 2.2 Level AA and Revised Section 508, and that full conformance is not being claimed today. Do not let this VPAT claim more than that page does, or the two documents will contradict each other in front of a buyer.

This report is published in full and ungated at /accessibility/vpat, rendered from the same source file this PDF is typeset from, so the web and PDF versions cannot drift apart.

Evaluation Methods

This report is based on the following, all against the live production system. The 8 August round is retained because the before-and-after is the evidence.

Round two, 12 August 2026. Repeat axe-core scan over twelve pages spanning all three surfaces, including four that did not exist on 8 August (/terms, /privacy, /qbo/disconnected, and the rebuilt help guide). Result: zero violations on every page, against 173 contrast failures at baseline. Additionally, scripted rather than eyeballed:

  • Reflow at 320px CSS width on ten pages, with each overflowing element identified by name
  • Resize text to 200% on the same ten
  • Text spacing using the WCAG-specified overrides
  • Input purpose, every field audited against the specification's defined list
  • Focus visibility across the first twelve tab stops per page, driven by real Tab keypresses. An earlier pass using programmatic focus reported three failures. Those were false positives, because .focus() does not trigger :focus-visible. Re-tested properly, all twelve tab stops show a visible ring on every page. Recorded because an invented failure in a procurement document is as damaging as a concealed one.

Round one, 8 August 2026:

  1. Automated WCAG scan using axe-core (industry standard, the engine behind most commercial accessibility tooling), run against 17 representative pages across all three surfaces, filtered to WCAG 2.0/2.1/2.2 Level A and AA rules. Run three times: a baseline, then twice more after remediation, so every claim of improvement below is a measured before-and-after rather than an assertion.
    • Pages covered: sign-in, accessibility statement, public booking, public directory, public events, a live chamber website, dashboard, member roster, member create form, event create form, billing, communications, settings, booking setup, help guide, a help topic, and reports.
  2. Source code review for accessibility affordances: landmarks, skip links, ARIA usage, form labelling, focus styles, reduced-motion support, and keyboard alternatives to pointer-only interactions.
  3. Layout measurement in a real browser at 1440px, 1280px and 390px viewports.

A methodology note that materially affects what these scans are worth. Early runs measured too soon after page load and therefore under-reported. The booking calendar is populated after an async availability fetch, so a scan taken before that returns finds an empty container and reports nothing wrong. That hid a critical role="grid" failure on every /book page for three days. Every figure in this report comes from runs that wait for the page to settle first. If you commission a third-party audit, ask how they handle asynchronously rendered content.

What has not been done yet

These are the gaps between this report and a fully evidenced one. All are scheduled, and the report is reissued as each lands. We would rather publish the list than let a buyer find it.

Missing Why it matters Rough effort
Screen reader testing (NVDA + Windows, VoiceOver + macOS/iOS) Roughly two thirds of WCAG failures are invisible to automated tools. Most "Not Evaluated" rows below become answerable only after this. 1 to 2 days
Full keyboard-only walkthrough Confirms 2.1.1, 2.1.2, 2.4.3, 2.4.7, 2.4.11 for real 0.5 day
Third-party audit Some buyers, especially public sector, will not accept a self-assessment External cost
Zoom / reflow testing at 400% 1.4.10 cannot be confirmed by the scan alone 0.5 day

Applicable Standards / Guidelines

Standard / Guideline Included in report
WCAG 2.2 Level A — YesLevel AA — YesLevel AAA — No
Revised Section 508 (36 CFR Part 1194) Yes
EN 301 549 (EU) No

EN 301 549 is out of scope: no chamber we serve or are currently pursuing operates in the EU or sells to EU public bodies. If that changes this report gets a European annex rather than a footnote, because the criteria differ in places and a buyer deserves the real mapping instead of an assurance that they are equivalent.

WCAG 2.2 is used rather than 2.1 because 2.2 is the current recommendation and supersedes 2.1. Everything in 2.1 is included. The nine criteria new in 2.2 are marked (new in 2.2).


Terms

The terms used in the Conformance Level column are defined by ITI:

  • Supports — the functionality of the product has at least one method that meets the criterion without known defects, or meets it with equivalent facilitation.
  • Partially Supports — some functionality of the product does not meet the criterion.
  • Does Not Support — the majority of product functionality does not meet the criterion.
  • Not Applicable — the criterion is not relevant to the product.
  • Not Evaluated — the product has not been evaluated against the criterion. (Permitted for Level AAA only under the standard VPAT template. We use it more widely here, and say so plainly, because claiming "Supports" for something untested would be the dishonest option. Every use is explained in the Remarks column.)

WCAG 2.2 Report

Table 1: Success Criteria, Level A

Criterion Conformance Level Remarks and Explanations
1.1.1 Non-text Content Partially Supports Decorative icons are marked aria-hidden="true", and every image on every public page tested carries a meaningful alt value (measured 12 August 2026: 60 images across five pages, zero missing, zero empty). Closed 12 August 2026: the upload forms for deals, news, marketplace listings, adverts, sponsorship creative and member-submitted event flyers each now offer a Describe this image field, stored per record and used as the alt value, with helper text teaching what a useful description is. Remaining gap: the field is optional, so a chamber can still publish an undescribed image, and images on the separately-built chamber websites are outside this codebase. See Authoring Tool Note.
1.2.1 Audio-only and Video-only (Prerecorded) Not Applicable The product ships no prerecorded audio or video of its own. Chambers may embed a cover video on a member directory page. See the Authoring Tool Note.
1.2.2 Captions (Prerecorded) Not Applicable As above. Verified 12 August 2026, and the earlier assumption was wrong. There is no product tour, onboarding or marketing video authored by us anywhere in the application. However a member can attach a YouTube or Vimeo URL to their listing, which is embedded on their public member page. That content is authored by a member and hosted by a third party, so captions and audio description for it are an authoring-tool question under Section 504 rather than a failure of this product. See the Authoring Tool Note.
1.2.3 Audio Description or Media Alternative Not Applicable As above.
1.3.1 Info and Relationships Supports Semantic landmarks (<main>, <nav>, <aside>), heading structure, real <table> markup for data tables, and <label> elements on form controls. role= appears in 84 view files. The critical defect here is fixed: the navigation drawer toggle (#crm-drawer) was an unlabelled <input type="checkbox"> on 11 of 11 authenticated pages. It is now out of the accessibility tree, since the visible label carries the name. Re-scan: zero instances.
1.3.2 Meaningful Sequence Not Evaluated DOM order appears to match visual order, but this needs a screen-reader pass to confirm, particularly in the drag-and-drop page builder.
1.3.3 Sensory Characteristics Not Evaluated Needs manual review of instructional copy. No automated equivalent.
1.4.1 Use of Color Not Evaluated Status is often conveyed by coloured badges ("Active", "Lapsed", "Pending"), but those badges also carry text, which is the required alternative. Needs a manual pass to confirm no case relies on colour alone. Risk area: the member roster's risk score column.
1.4.2 Audio Control Not Applicable No auto-playing audio.
2.1.1 Keyboard Not Evaluated Standard HTML controls throughout, which is a good sign. Must be manually verified, especially: the drag-and-drop page builder, the block-based email composer, and the event check-in QR scanner. Note the page builder does provide Move up / Move down buttons as a keyboard alternative to dragging.
2.1.2 No Keyboard Trap Not Evaluated Modal dialogs and the Buddy chat panel are the risk areas. Needs manual testing.
2.1.4 Character Key Shortcuts Supports The only shortcut is the command palette on Cmd/Ctrl+K, which is a modifier combination, not a single character key. Single-character shortcuts are what this criterion restricts.
2.2.1 Timing Adjustable Supports Sessions end after 120 minutes of inactivity. As of 12 August 2026 a warning appears five minutes before expiry, against a criterion requiring at least twenty seconds, offering Stay signed in which extends the session, and Sign out now. It is a role="alertdialog" that takes focus, so a keyboard or screen-reader user arrives at the control that resolves it. The countdown resets on genuine activity, so somebody actively working is never interrupted.
2.2.2 Pause, Stop, Hide Supports No auto-updating, blinking, or scrolling content that runs longer than five seconds.
2.3.1 Three Flashes or Below Threshold Supports No flashing content.
2.4.1 Bypass Blocks Supports A "Skip to main content" link is present on the app shell and public pages (skip-link, 9 files), and semantic landmarks provide a second mechanism.
2.4.2 Page Titled Supports Every page sets a descriptive <title> via the layout, in the form "Page name · Chamber Culture CRM".
2.4.3 Focus Order Not Evaluated Needs a keyboard pass. Risk area: the account dropdown and modal dialogs.
2.4.4 Link Purpose (In Context) Supports Most links are descriptive. Fixed 8 August 2026: 63 icon-only buttons across 10 files carried their description only in a title attribute, which is not reliably announced. Each now has an explicit aria-label with the decorative glyph marked aria-hidden. One exception is under review rather than guessed at: the rich-text toolbar's B / I / H2 buttons show literal letters, and putting an aria-label over visible text risks failing 2.5.3.
2.5.1 Pointer Gestures Supports No multipoint or path-based gestures. Drag operations are single-pointer and have button alternatives.
2.5.2 Pointer Cancellation Not Evaluated Standard HTML buttons activate on click (up-event), which conforms. Needs confirmation for the custom drag handles.
2.5.3 Label in Name Not Evaluated Needs a manual pass comparing visible labels to accessible names.
2.5.4 Motion Actuation Not Applicable No device-motion or user-motion operated functionality.
3.1.1 Language of Page Supports <html lang="en"> is set in the app layout and public layouts.
3.2.1 On Focus Not Evaluated No known context changes on focus. Needs manual confirmation.
3.2.2 On Input Partially Supports Several filters (member roster status pills, search) update results live on input, which is permitted, but live-updating regions must announce themselves and this has not been verified. Related to 4.1.3.
3.2.6 Consistent Help (new in 2.2) Supports The help guide is reachable from the account menu in the same position on every authenticated page, and Chamber Culture Buddy is available throughout the guide. This was shipped on 8 August 2026 and materially improves this criterion.
3.3.1 Error Identification Partially Supports Validation renders inline error text next to the offending field. Improved 8 August 2026: aria-describedby and aria-invalid are now wired on the four highest-traffic public and member forms (online join, booking, event registration, portal sign-in). It previously appeared in 0 view files. Remaining gap, stated plainly: the member-portal content forms and the staff CRM forms are not yet covered. There is no shared form-field component, so this is form by form.
3.3.2 Labels or Instructions Supports Form controls are labelled. The #crm-drawer defect (see 1.3.1) is fixed, and the re-scan reports no unlabelled control on any page of the application.
3.3.7 Redundant Entry (new in 2.2) Not Evaluated Multi-step flows (online join, event registration, the import wizard) need review to confirm previously entered information is not asked for again.
4.1.1 Parsing Not Applicable Removed from WCAG 2.2 as obsolete. Listed for completeness.
4.1.2 Name, Role, Value Partially Supports Broad ARIA usage: aria-label now in 69 view files, plus aria-haspopup, aria-expanded, aria-current. Fixed: the unlabelled #crm-drawer toggle (was 11 pages) and 63 unnamed icon-only buttons. One defect remains and it is not in this application: an aria-hidden element containing focusable content on the published chamber websites, a separate codebase.

Table 2: Success Criteria, Level AA

Criterion Conformance Level Remarks and Explanations
1.2.4 Captions (Live) Not Applicable No live media.
1.2.5 Audio Description (Prerecorded) Not Applicable No prerecorded video of our own.
1.3.4 Orientation Supports Responsive layout, no orientation lock.
1.3.5 Identify Input Purpose Supports Audited 12 August 2026 across the public join form and the member portal profile. Every field in scope carries the correct token: name, organization, email, tel, address-line1, address-line2, address-level1, address-level2, postal-code, given-name, family-name. Fields such as website and slogan fall outside 1.3.5, which covers only information about the user drawn from the specification's defined list.
1.4.3 Contrast (Minimum) Supports (this application) Was the largest finding at 173 instances across 16 of 17 pages. Now zero on every page of Chamber Culture CRM. The cause was systemic rather than 173 separate mistakes: Tailwind opacity-* utilities on text, which blend toward the background, so the same utility yields a different ratio on every surface (opacity-40 measured 2.52:1, opacity-60 measured 4.45:1). Replaced with colour-based tokens across 554 usages in 103 files, plus 446 semantic-colour usages moved to darkened -ink variants (daisyUI's text-success measured 1.55:1 on white). Every token verified against both page grounds, in light and dark themes. One instance remains on the published chamber websites, a separate codebase.
1.4.4 Resize Text Partially Supports Measured at 200% text size on ten pages. Every public page reflows cleanly with no horizontal scrolling. Three dense authenticated screens still overflow: Settings by 276px, the dashboard by 85px, the member portal by 32px. Quantified and tracked rather than left as an intention.
1.4.5 Images of Text Supports Text is rendered as text. Logos are exempt.
1.4.10 Reflow Partially Supports Re-measured 12 August 2026 at 320px CSS width. Every public page is now clean, including the ones a chamber's community actually uses. Two fixes landed that day: the public join form overflowed 59px because a legend and fieldset would not shrink, and the legal pages overflowed 8px because an email address is a single unbreakable token wider than the column. Remaining: Settings 24px and the dashboard 3px, both authenticated admin screens.
1.4.11 Non-text Contrast Not Evaluated Needs review of form-control borders, focus indicators and icon contrast against their backgrounds.
1.4.12 Text Spacing Supports Measured 12 August 2026 by applying the WCAG-specified overrides (line-height 1.5, letter-spacing 0.12em, word-spacing 0.16em, paragraph spacing 2em) to ten pages across all three surfaces. No horizontal overflow and no clipped text anywhere.
1.4.13 Content on Hover or Focus Partially Supports Tooltips are largely native title attributes, which are browser-controlled and conform. Custom dropdowns and popovers need review for dismissibility and hoverability.
2.4.5 Multiple Ways Supports Persistent sidebar navigation, a global command palette (Cmd/Ctrl+K) searching members and contacts, in-page search on list screens, and a sitemap on public chamber sites.
2.4.6 Headings and Labels Supports Descriptive headings throughout. The scan reported no empty-heading or heading-order violations.
2.4.7 Focus Visible Supports A visible focus indicator is applied to interactive elements (focus-visible in 9 files) and the scan surfaced no focus-visibility violations. Should still be confirmed manually against custom controls.
2.4.11 Focus Not Obscured (Minimum) (new in 2.2) Not Evaluated Risk areas: the sticky top bar, and the floating Buddy launcher in the bottom-right corner, which could overlap a focused element at the foot of a page. Worth a specific check.
2.5.7 Dragging Movements (new in 2.2) Supports The website and landing page builders use drag-and-drop, and provide Move up / Move down buttons as a single-pointer alternative, which is exactly what this criterion requires. Note the buttons' labelling weakness under 2.4.4.
2.5.8 Target Size (Minimum) (new in 2.2) Partially Supports 15 instances, all on the published chamber websites, which are a separate codebase. The authenticated CRM and the tenant pages served by it pass.
3.1.2 Language of Parts Not Applicable Content is English throughout. Chamber content is authored in English. As of 12 August 2026 a chamber may switch on a public language switcher, which is machine translation and is not offered as conformance with this criterion: 3.1.2 concerns marking up the language of parts, which machine translation does not do. If a chamber begins publishing content authored in another language this criterion becomes applicable and this row changes.
3.2.3 Consistent Navigation Supports Navigation is rendered from one shared layout, so it is consistent by construction.
3.2.4 Consistent Identification Supports Shared components mean icons and controls are identified consistently across screens.
3.3.3 Error Suggestion Partially Supports Validation messages describe the problem and are often specific ("The end must be after the start."). Coverage across every form has not been audited.
3.3.4 Error Prevention (Legal, Financial, Data) Supports Financially significant and destructive actions use confirmation steps: invoices move through an explicit draft → issue lifecycle, group billing shows a preview before running, CSV imports show a full dry-run of creates/updates/invalid rows before commit and can be rolled back afterwards, and destructive actions use confirmation dialogs.
3.3.8 Accessible Authentication (Minimum) (new in 2.2) Supports Member portal sign-in defaults to an emailed magic link, which requires no cognitive function test. Password entry permits paste and browser password managers. Cloudflare Turnstile is used on the public roadmap suggestion board, not on any authentication flow. Verified 12 August 2026: Turnstile is not present on staff login or the online join flow. It appears only on the public roadmap suggestion board, and is not configured in any environment, so no CAPTCHA is currently served to any user.
4.1.3 Status Messages Partially Supports Substantially improved 8 August 2026. There is now a global status live region (role="status", aria-live="polite") announcing every toast confirmation. Fixing this uncovered a plain functional bug: seven components dispatched a toast event and nothing was listening, so those confirmations were silently dropped for every user, not only for assistive-technology users. Remaining gap: live-updating filter results (for example the member roster's status pills) still do not announce the new result count.

Authoring Tool Note

This matters more for Chamber Culture than for most products, and buyers who know accessibility will ask about it.

Chamber Culture CRM is an authoring tool: chambers use it to publish a public website, a business directory, events and news. The accessibility of that published output depends on both our templates and what the chamber types and uploads.

Our templates are our responsibility. Chamber-authored content is theirs, and today the product does little to help them:

  • Image upload forms do not prompt for alt text, so member logos, gallery photos and cover images can be published with none. This is the single biggest lever we have over the accessibility of the public web pages our chambers put into the world.
  • There is no contrast check on the brand-kit colour picker, so a chamber can select a brand colour pair that fails 1.4.3 on its own public site.
  • There is no reading-level or heading-structure guidance in the page builder.

Delivered 12 August 2026, in part. Every content-image upload, deals, news, marketplace listings, adverts, sponsorship creative and member-submitted event flyers, now offers a Describe this image field. The helper text teaches the skill rather than naming the field, "say what the image shows, not that it is an image", and on event flyers it asks for the date and price too, because on a flyer those are pixels and reach nobody using a screen reader. The in-product help guide explains why it matters.

Still outstanding, and honestly so: the field is optional rather than required, there is no contrast warning in the brand kit when a chamber picks a failing colour pair for its own site, and there is no reading-level or heading-structure guidance in the page builder.

This matters beyond compliance. A chamber that describes its images is making its own community's web better, and a platform that teaches that is doing something a competitor's feature list does not cover.


Revised Section 508 Report

Chapter 3: Functional Performance Criteria

Criterion Conformance Level Remarks
302.1 Without Vision Not Evaluated Requires screen-reader testing, not yet performed. The known unlabelled control and missing status-message announcements will both affect this.
302.2 With Limited Vision Partially Supports Zoom and responsive reflow are supported, but the 173 contrast failures directly affect users with limited vision.
302.3 Without Perception of Color Not Evaluated Status is generally conveyed by text as well as colour, but this needs a manual pass.
302.4 Without Hearing Supports No functionality depends on hearing.
302.5 With Limited Hearing Supports As above.
302.6 Without Speech Supports No functionality requires speech.
302.7 With Limited Manipulation Partially Supports Full keyboard operation is intended and drag operations have button alternatives, but keyboard operability has not been formally verified, and target sizes fail in 15 places on public chamber sites.
302.8 With Limited Reach and Strength Supports No functionality requires reach or strength.
302.9 With Limited Language, Cognitive, and Learning Abilities Supports Plain-language interface, consistent navigation, an 81-topic in-product help guide, an AI help assistant, destructive actions confirmed, and imports previewable and reversible.

Chapter 4: Hardware

Not Applicable. Chamber Culture CRM is a web application and includes no hardware.

Chapter 5: Software

Criterion Conformance Level Remarks
501.1 Scope The product is web software; the WCAG 2.2 report above applies in full.
502 Interoperability with Assistive Technology Not Evaluated Standard HTML semantics and ARIA are used, which is the right foundation, but interoperability has not been verified with an actual screen reader.
503 Applications Partially Supports See the WCAG tables. The product does not disrupt platform accessibility features and honours the OS reduced-motion preference.
504 Authoring Tools Partially Supports See the Authoring Tool Note. The product produces accessible templates but does not prompt authors for alt text, so it does not currently facilitate the production of accessible content to the standard 504 expects. This is the weakest area of the product and the most honest thing in this document.

Chapter 6: Support Documentation and Services

Criterion Conformance Level Remarks
601.1 Scope
602.2 Accessibility and Compatibility Features Supports A public statement at /accessibility, and as of 12 August 2026 a dedicated Accessibility topic inside the in-product help guide covering keyboard operation, screen-reader notes, how to write a useful image description, the language switcher, and how to request an accommodation. It is searchable by the words somebody would actually use, including screen reader, alt text and keyboard.
602.3 Electronic Support Documentation Not Evaluated The help guide is delivered as ordinary HTML within the product and inherits the app's accessibility, so it is likely in reasonable shape, but it has not been separately evaluated.
602.4 Alternate Formats for Non-Electronic Support Documentation Not Applicable All documentation is electronic.
603.2 Information on Accessibility and Compatibility Features Supports Documented in the in-product help guide and in this report: email [email protected] with accessibility in the subject, a reply within one business day, and anything blocking a disabled user from doing their job treated as a defect rather than a feature request.
603.3 Accommodation of Communication Needs Not Evaluated Support is email-based today, which suits many disabled users well. Support is email-first, which suits many disabled users well, and telephone support is available on the number published in the product footer. Where email is not a workable channel for a user, we use whichever one is.

Summary of Known Defects

Everything below was measured on the live product with axe-core, before and after remediation. Nothing here is inferred.

Scan results

Two surfaces, measured separately, because they are separate codebases.

Chamber Culture CRM (the application this report covers):

Baseline After remediation
Distinct rules failing 4 0
Colour contrast instances 173 across 16 pages 0
Critical failures 1, on 11 of 11 pages 0
Pages scanning clean 0 of 16 16 of 16

The published chamber websites (generated by a separate codebase, included because it is the surface a chamber's community actually uses):

Baseline After remediation
Pages with any violation 20 of 20 6 of 20
Colour contrast instances 43 0
aria-hidden focus traps 20 0
Critical failures 1 0
Target size (map pins) 282 282, claimed under the Essential exception

Every page of Chamber Culture CRM, and every chamber-site page except the four carrying a map, now scans clean at WCAG 2.2 A and AA under automated testing. That is a real result and also a limited one: see the caveat below.

Why the map pins are not a defect

WCAG 2.5.8 exempts a target whose particular presentation is Essential. A map pin's position is the information being conveyed: spacing pins 24 CSS pixels apart would place businesses somewhere they are not. The pins are keyboard focusable and carry accessible names, and the same members are reachable at full size from the directory.

We are not treating that as a licence to leave it. Marker clustering plus a member list on the map page itself would additionally satisfy the Equivalent exception and remove the need to rely on Essential at all. Both are better UX regardless, and both are open.

Remaining automated finding

One, and it is claimed under an exception rather than outstanding:

# Finding WCAG Position
1 Overlapping map pins under 24px 2.5.8 (AA) Essential exception (see above). Clustering and an on-page member list are open as improvements.

Defects fixed in this round

Finding WCAG Was Now
Unlabelled navigation drawer toggle 1.3.1, 3.3.2, 4.1.2 (A) Critical, 11 of 11 pages Fixed
Colour contrast, systemic 1.4.3 (AA) 173 instances Fixed in this app
Icon-only buttons with no accessible name 2.4.4, 4.1.2 63 buttons Fixed
Status messages not announced 4.1.3 (AA) aria-live in 3 files Live region added
Errors not linked to inputs 3.3.1 (A) aria-describedby in 0 files 4 highest-traffic forms
Horizontal scroll at desktop widths 1.4.10 (AA) 8px on /website Fixed

Still open in this application

# Finding WCAG Why it is still here
4 aria-describedby not on portal content forms or staff CRM forms 3.3.1 (A) No shared form-field component, so it is form by form. Deliberately staged rather than done as one unreviewable change.
5 Live filter results do not announce 4.1.3 (AA) Done 8 Aug 2026 on the member roster and invoice list, via a visually-hidden live region rather than a toast: a card popping up on every filter click is an interruption, and this is routine orientation. Other list screens are still silent.
6 Image uploads do not prompt for alt text 1.1.1 (A), 508 §504 Substantially done 8 Aug 2026. Members can now describe their own gallery photos (previously staff-only, which was backwards); event flyers carry a description; the shared upload component has an opt-in alt field; and there is a help topic on writing one. Not claimed as complete: the tool now supports and encourages descriptions, it does not enforce them, and member cover images render as a CSS background, which has no alt mechanism at all.
7 No session-expiry warning 2.2.1 (A) Needs a UX decision about how it interrupts someone mid-task.
8 Horizontal scroll at 390px 1.4.10 (AA) Three of four fixed and verified on production. The cause was one inherited CSS rule, not three bugs: daisyUI sets .label { white-space: nowrap }, and white-space inherits, so any helper sentence inside a label became one unbreakable line. Fixed as a rule so the next helper sentence cannot repeat it. /billing still overflows by 8px and we have not yet located the cause. The invoice table's scroll container is behaving correctly, no element exceeds the content box, and four candidate fixes changed nothing. Recorded as unexplained rather than papered over with overflow-x: hidden, which would hide it and the next one.
10 Map pin clustering and an on-page member list 2.5.8 (AA) Would remove the reliance on the Essential exception.
9 Rich-text B / I / H2 buttons 2.5.3, 4.1.2 Done 8 Aug 2026. 2.5.3 requires the accessible name to CONTAIN the visible text, so "Bold" and "Italic" were already valid for B and I. "Large heading" does not contain "H2", so that button now reads "H2, large heading".

What "zero automated violations" does and does not mean

It does not mean "conforms to WCAG 2.2 AA", and we will not present it that way. Automated tooling reaches roughly a third of the standard. It cannot judge whether alt text is meaningful, whether focus order is logical, whether an error message is helpful, or whether the product is genuinely usable with a screen reader.

What it does mean is that the third a machine can reach is now clean, on every page of all three surfaces, and that we have said precisely which criteria fall outside it. Every row marked Not Evaluated is one we have not tested, rather than one we have quietly assumed in our own favour.

That distinction is the reason to trust the rows marked Supports. A report claiming conformance across the board on the strength of an automated scan is easier to write and worth less to the buyer, and it is exactly what an accessibility reviewer is trained to look for. We would rather hand you a shorter list of claims that hold.

The outstanding evaluations, principally a screen-reader and keyboard pass by a human, are scheduled. When they are done this report is reissued with those rows answered, whichever way they land.


Remediation Log

Date Change Effect
8 Aug 2026 Drawer toggle removed from the accessibility tree 1 critical, 11 pages, cleared
8 Aug 2026 opacity-* on text replaced with colour tokens (554 usages, 103 files) Bulk of 173 contrast failures
8 Aug 2026 Semantic colours moved to -ink variants for text (446 usages, 72 files) text-success from 1.55:1 to 5.48:1
8 Aug 2026 aria-label on 63 icon-only buttons 2.4.4, 4.1.2
8 Aug 2026 Global role="status" live region 4.1.3, and 7 silently dropped confirmations
8 Aug 2026 aria-describedby on 4 public and member forms 3.3.1, from a base of zero
8 Aug 2026 Navy sidebar, checklist rows and sign-in links darkened Final 66 CRM contrast instances
8 Aug 2026 Concierge panel given visibility:hidden and inert when closed 20 focus traps, every chamber-site page
8 Aug 2026 Chamber-site footer, booking calendar and ad byline contrast 43 instances, chamber sites
8 Aug 2026 Booking calendar role="grid" corrected to role="group" 1 critical, every /book page
8 Aug 2026 Members can caption their own gallery photos; event flyers gained alt 508 §504 authoring gap
12 Aug 2026 Four daisyUI semantic tokens were never defined, so library defaults leaked: success rendered 1.96:1 on white, error 2.87:1 Every remaining contrast failure, product-wide
12 Aug 2026 --color-accent darkened from #10b981 to #047857 White button labels from 2.53:1 to 5.48:1
12 Aug 2026 Static marketing stylesheet fixed, and its hand-maintained cache-buster bumped across 34 files Without the bump the fix was invisible to every returning browser
12 Aug 2026 Public join legend/fieldset made shrinkable; email addresses made wrappable 1.4.10, public pages from 59px and 8px overflow to zero
12 Aug 2026 given-name and family-name added in the member portal 1.3.5 to Supports
12 Aug 2026 Session-expiry warning with Stay signed in, role="alertdialog", five minutes ahead 2.2.1 to Supports
12 Aug 2026 Describe this image on six content-image upload surfaces 1.1.1, and the §504 authoring gap
12 Aug 2026 Accessibility topic added to the in-product help guide 602.2 and 603.2 to Supports
12 Aug 2026 Opt-in public language switcher, machine translation, explicitly not a 3.1.2 claim Product feature, not a conformance change
8 Aug 2026 .label nowrap inheritance fixed as a rule 3 of 4 reflow failures
8 Aug 2026 Filter results announced on the roster and invoice list 4.1.3
8 Aug 2026 Rich-text button names made 2.5.3-compliant 2.5.3, 2.4.4

Three regression tests pin the critical fixes against rendered markup, so they cannot quietly come back.

Resolution log for this issue

Every question that blocked the 8 August draft is now closed. Recorded so a reader can see what changed between drafts rather than taking the word "issued" on trust.

# Question Resolution
1 Version identifier Date-based. Continuous deployment, reissued quarterly; releases at /releases
2 Legal entity, address, accessibility contact Supplied, see Contact Information
3 Fund or schedule the missing evaluations Scheduled. Screen-reader and keyboard passes are the remaining work
4 EU exposure None today, so EN 301 549 is out of scope with a stated reason
5 Product video in the app Assumption corrected. None authored by us; members can embed third-party video, handled as an authoring-tool question
6 Session-expiry warning Built 12 Aug 2026. 2.2.1 moves to Supports
7 Remaining reflow issues Public pages cleared 12 Aug 2026. Two admin screens quantified and tracked
8 Multilingual chamber content Not on the roadmap as authored content. A machine-translation switcher shipped, explicitly not claimed as 3.1.2
9 Turnstile on authentication flows Confirmed absent, and unconfigured in every environment
10 Alt-text prompts and brand-kit contrast check Alt-text prompts built 12 Aug 2026. Brand-kit contrast warning still outstanding
11 Help-guide topic on assistive technology Written 12 Aug 2026. 602.2 moves to Supports
12 Accommodation path and response time Documented: one business day, blocking issues treated as defects. 603.2 moves to Supports
13 Phone support or an alternative channel Both offered, documented in the help guide and here
14 Fix findings 1, 2, 7, 8 Done 8 Aug 2026
15 Chamber-websites accessibility work Done 8 Aug 2026, except map clustering

Legal Disclaimer

This Accessibility Conformance Report is provided by Champlin Enterprises, LLC for informational purposes. It reflects a good-faith self-assessment of Chamber Culture CRM as of the report date, using the evaluation methods described above. It is not a third-party audit and does not constitute a warranty, guarantee, or legal certification of conformance. Accessibility is assessed against the standards named above; a product may conform to those standards and still present barriers to an individual user.

The product is under continuous development, and this report describes it as of the report date only.

❓ Standard VPAT disclaimers vary. If a client's legal team supplies preferred wording, use theirs. If any chamber you sell to is a public body, have this reviewed by counsel before issuing.


"VPAT" and "Voluntary Product Accessibility Template" are registered service marks of the Information Technology Industry Council (ITI).