Website Accessibility Audit (WCAG 2.1) on 1C-Bitrix

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages

Website Accessibility Audit (WCAG 2.1) on 1C-Bitrix

WCAG 2.1 is the web content accessibility standard. Level A represents the minimum requirements; Level AA is the widely accepted standard for commercial websites. For commercial sites, accessibility is primarily a matter of audience reach and SEO: proper semantics, image alt text, and color contrast all improve search rankings as well.

Automated Testing Tools

No automated tool covers 100% of WCAG criteria, but they address 30–40% of issues quickly:

  • axe DevTools (Chrome/Firefox extension) — the most comprehensive automated check
  • WAVE (wave.webaim.org) — convenient visualization of errors directly on the page
  • Lighthouse (built into Chrome DevTools, Accessibility tab) — gives a score and a list of issues
  • Pa11y — CLI tool for automating checks in CI/CD pipelines

Run checks on several representative page types: homepage, catalog, product page, cart, checkout page, and user account.

Common Issues on Bitrix Sites

Images without alt text. The standard catalog.element component outputs alt="" or omits the attribute entirely. For informational images, the alt text must describe the content; for decorative images, alt="" is correct.

In the component's template.php, verify:

// Wrong:
<img src="<?= $product['PICTURE'] ?>">

// Correct:
<img src="<?= $product['PICTURE'] ?>" alt="<?= htmlspecialchars($product['NAME']) ?>">

// For a decorative image:
<img src="banner.jpg" alt="" role="presentation">

Insufficient text contrast. WCAG 2.1 AA requires a contrast ratio of at least 4.5:1 for regular text and 3:1 for large text. Gray text on a white background, e.g. #999 on #fff, yields 2.85:1 — a violation. Check using Colour Contrast Checker or axe DevTools.

Forms without labels. Bitrix feedback forms (subscribe.form, webform.*) often use placeholder instead of <label>. The placeholder disappears on input — a screen reader cannot tell the user what the field is for:

<!-- Wrong: -->
<input type="email" placeholder="Your email">

<!-- Correct: -->
<label for="email">Email</label>
<input type="email" id="email" name="email" placeholder="[email protected]">

No focus indicator on interactive elements. The site must be fully operable via keyboard. The common CSS reset outline: none breaks navigation for users without a mouse. Replace it with a custom focus style:

:focus-visible {
    outline: 2px solid #0066CC;
    outline-offset: 2px;
}

Cart and checkout. The sale.order.ajax component makes heavy use of AJAX — when content updates, an ARIA live region must be updated so screen readers announce the changes:

<div aria-live="polite" aria-atomic="true" id="cart-status"></div>
// On cart update
document.getElementById('cart-status').textContent = 'Cart updated. Total: ' + totalPrice;

Modal dialogs. Pop-up windows in Bitrix (add-to-cart confirmation, city selection) must trap focus inside when open and return focus to the trigger element when closed. Without this, keyboard users "fall through" beyond the modal dialog.

Semantic Page Structure in Bitrix

Headings. A typical error in Bitrix templates: multiple <h1> elements on a page, or skipped levels (jumping from <h2> directly to <h4>). A page must have exactly one <h1>, followed by a sequential hierarchy.

Navigation. Menus must be wrapped in <nav> with an aria-label. If multiple <nav> elements are present, each must have a unique aria-label:

<nav aria-label="Main menu">...</nav>
<nav aria-label="Breadcrumbs">...</nav>
<nav aria-label="Pagination">...</nav>

Buttons and links. <button> — for actions (add to cart, submit form). <a> — for navigation. Using <div onclick> instead of <button> breaks accessibility entirely.

Audit Report Format

WCAG Criterion Level Status Pages
1.1.1 Non-text Content A Partial Catalog, product page
1.3.1 Info and Relationships A Violation Forms
1.4.3 Contrast (Minimum) AA Violation Site-wide
2.1.1 Keyboard A Partial Cart
2.4.7 Focus Visible AA Violation Site-wide
4.1.3 Status Messages AA Violation Cart, forms

Timeline

Phase Duration
Automated checks (axe, Lighthouse, WAVE) 1–2 days
Manual review with keyboard and screen reader (NVDA/VoiceOver) 2–3 days
Report with prioritized issues 1 day
Fixing critical violations (Level A) 1–2 weeks
Fixing Level AA violations 2–4 weeks