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:
- 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.
- 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.
- 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/bookpage 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 | 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 | 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 | 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 | Done 8 Aug 2026 | |
| 15 | 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).