# Scan Report: Drupal Camp Asheville

- Issue: https://github.com/mgifford/open-scans/issues/347
- Submitted by: tea-sharp
- Scanned at: 2026-08-20T17:07:27.574Z
- Engines used: AXE, QUALWEB
- Scan duration: 0.6 minutes
- Total URLs submitted: 2
- Accepted public URLs: 2
- Rejected URLs: 0
- 🎨 **Accessibility personalization (CSS media queries):**
  - 🌙 Dark mode: None of the scanned URLs support `prefers-color-scheme: dark`
  - ⚡ **Reduced motion:** 1 of 2 URLs (50%) support `prefers-reduced-motion: reduce`
  - 🔍 High contrast: None of the scanned URLs support `prefers-contrast: more`
  - 🖥️ **Forced colors:** 2 of 2 URLs (100%) support `forced-colors: active`
  - 🪟 Reduced transparency: None of the scanned URLs support `prefers-reduced-transparency: reduce`
- ALFA outcomes: 0 passed, 0 failed, 0 cantTell, 0 inapplicable
- axe outcomes: 910 passed, 34 failed, 15 cantTell, 90 inapplicable
- Equal Access outcomes: 0 passed, 0 failed (0 unique, 0 duplicate), 0 cantTell, 0 inapplicable
- AccessLint outcomes: 0 passed, 0 failed (0 unique, 0 duplicate), 0 cantTell, 0 inapplicable
- QualWeb outcomes: 397 passed, 19 failed, 104 cantTell, 9 inapplicable
- Reflow risk outcomes (WCAG 1.4.10, indicator only — not a conformance verdict): 1 failed, 0 potential, 1 passed, 0 cantTell, 0 not executed
- Semantica11y outcomes (semantic HTML/ARIA suggestions, kept separate from WCAG violation counts): 2 errors, 10 warnings, 0 suggestions, 0 not executed
- Duplicate findings caught by later scanners: 15

## 🔄 Changes Since Last Scan

- 🆕 **47 new unique issue(s)** detected for the first time in this scan

### 🆕 New Issues

- **A11Y-88a3ae65** `wcag:wcag143|light` (axe) — https://www.drupalasheville.com/
- **A11Y-92b629d0** `wcag:wcag143|light` (axe) — https://www.drupalasheville.com/
- **A11Y-c20c4004** `wcag:wcag143|light` (axe) — https://www.drupalasheville.com/
- **A11Y-cbc1b1e3** `wcag:wcag143|light` (axe) — https://www.drupalasheville.com/
- **A11Y-7c88e89b** `wcag:wcag244+wcag412|light` (axe) — https://www.drupalasheville.com/
- **A11Y-c1d0769b** `wcag:wcag244+wcag412|light` (axe) — https://www.drupalasheville.com/
- **A11Y-6b5b994f** `wcag:wcag244+wcag412|light` (axe) — https://www.drupalasheville.com/
- **A11Y-e0bdb05d** `wcag:wcag244+wcag412|light` (axe) — https://www.drupalasheville.com/
- **A11Y-556478bc** `wcag:wcag244+wcag412|light` (axe) — https://www.drupalasheville.com/
- **A11Y-2e18171c** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-d9d8d353** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-64f6926a** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-53cca94a** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-25ea66cb** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-a13ce4bc** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-0fdac318** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-e70a4ed6** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-ebb3f1a7** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-0c4bc862** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-693242b9** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-7e84b384** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-e489692d** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-0a5f9d33** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-039bd180** `rule:region|light` (axe) — https://www.drupalasheville.com/
- **A11Y-2861ff3a** `rule:qw-act-r37|light` (qualweb) — https://www.drupalasheville.com/
- **A11Y-eb4f043b** `rule:qw-act-r76|light` (qualweb) — https://www.drupalasheville.com/
- **A11Y-d4d251d7** `rule:aria-expanded|light` (semantica11y) — https://www.drupalasheville.com/
- **A11Y-1446ec78** `rule:aria-expanded|light` (semantica11y) — https://www.drupalasheville.com/
- **A11Y-219dc23b** `rule:aria-expanded|light` (semantica11y) — https://www.drupalasheville.com/
- **A11Y-5d9422a7** `rule:native-label|light` (semantica11y) — https://www.drupalasheville.com/
- **A11Y-fa3c68c2** `wcag:wcag143|light` (axe) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-05d1ad63** `wcag:wcag143|light` (axe) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-6f4c5113** `wcag:wcag143|light` (axe) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-b9187945** `rule:heading-order|light` (axe) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-eae515df** `wcag:wcag244+wcag412|light` (axe) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-a01efeed** `wcag:wcag244+wcag412|light` (axe) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-0cb2dcc6** `wcag:wcag244+wcag412|light` (axe) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-e68323c6** `wcag:wcag244+wcag412|light` (axe) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-3fa14931** `wcag:wcag244+wcag412|light` (axe) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-af5fb61e** `rule:region|light` (axe) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-eee694a8** `rule:qw-act-r37|light` (qualweb) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-123bfe24** `rule:qw-act-r76|light` (qualweb) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-b6184229** `rule:missing-form-labels|light` (semantica11y) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-21c0b4f2** `rule:heading-hierarchy|light` (semantica11y) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-69d06d40** `rule:aria-expanded|light` (semantica11y) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-224202c5** `rule:aria-expanded|light` (semantica11y) — https://www.drupalasheville.com/events/2026/schedule
- **A11Y-2c4b0d16** `rule:reflow-risk|light` (reflowRisk) — https://www.drupalasheville.com/events/2026/schedule

## 🎯 Pages with Most Errors

Focus your efforts on these pages to make the biggest impact. Scanner columns show raw failures; the Total column remains unique across the active scanners.

| Page | axe Errors | QualWeb Errors | Total Unique | Page Title |
|---|---:|---:|---:|---|
| [View Page](https://www.drupalasheville.com/) | 24 | 13 | **37** | Drupal Asheville \| Thu, 9 Jul 2026 - 12:00 - Sun, 12 Jul 2026 - 12:00 \| Asheville, NC \| Drupal Camp Asheville |
| [View Page](https://www.drupalasheville.com/events/2026/schedule) | 10 | 6 | **16** | Schedule \| Drupal Asheville |

## 🧭 Reflow Risk (WCAG 1.4.10)

Page-level indicator: resizes to 320 CSS pixels wide and checks for horizontal overflow. This is a risk indicator, not a conformance verdict — see [Behavioral Accessibility Automation](https://github.com/mgifford/ACCESSIBILITY.md/blob/main/examples/BEHAVIORAL_ACCESSIBILITY_AUTOMATION.md) for what it can and cannot detect.

| Page | Result | Details | Page Title |
|---|---|---|---|
| [View Page](https://www.drupalasheville.com/events/2026/schedule) | failed | Horizontal overflow detected: 3px of content overflowed the viewport at 320px width | Schedule \| Drupal Asheville |

## 🏷️ Semantic HTML & ARIA (Semantica11y)

Checks for non-semantic HTML and ARIA usage with suggestions for semantic improvements. These are suggestions, not WCAG conformance failures — see [semantica11y](https://npm.im/semantica11y) for the rule set.

| Page | Errors | Warnings | Suggestions | Corroborated | Page Title |
|---|---|---|---|---|---|
| [View Page](https://www.drupalasheville.com/) | 1 | 5 | 0 | - | Drupal Asheville \| Thu, 9 Jul 2026 - 12:00 - Sun, 12 Jul 2026 - 12:00 \| Asheville, NC \| Drupal Camp Asheville |
| [View Page](https://www.drupalasheville.com/events/2026/schedule) | 1 | 5 | 0 | - | Schedule \| Drupal Asheville |

## 🔧 Most Common Issues (ALFA)

These ALFA accessibility issues appear most frequently across your pages:

✅ No ALFA failed rules detected!

## 🔧 Most Common Issues (axe)

These axe accessibility issues appear most frequently across your pages:

| Rule | Pages Affected | Documentation |
|---|---:|---|
| color-contrast | **2** of 2 | [View Rule](https://dequeuniversity.com/rules/axe/4.12.1/color-contrast) |
| link-name | **2** of 2 | [View Rule](https://dequeuniversity.com/rules/axe/4.12.1/link-name) |
| region | **2** of 2 | [View Rule](https://dequeuniversity.com/rules/axe/4.12.1/region) |
| heading-order | **1** of 2 | [View Rule](https://dequeuniversity.com/rules/axe/4.12.1/heading-order) |

> 💡 **Tip**: Click on the rule documentation links to learn how to fix each issue. Consider fixing the most common issues first for maximum impact.

> 🤖 **Future Enhancement**: This report will soon include AI-powered fix suggestions for authenticated GitHub users (opt-in only, no auto-run AI).

## 🔍 Cross-Page Patterns: Common HTML Issues

These HTML patterns cause the same accessibility errors across multiple pages. **Fix the pattern once in your codebase to fix it everywhere!**

### 🎯 Top Patterns to Fix (Highest Impact)

#### Pattern 1: Affects 2 page(s) - 2 occurrence(s)

**Scanner**: axe
**Rule**: [link-name](https://dequeuniversity.com/rules/axe/4.12/link-name?application=playwright)
**Impact**: serious
**Issue**: Links must have discernible text

**HTML Pattern**:
```html
<a class="social-media-link-icon--linkedin" href="https://www.linkedin.com/company/drupal-asheville/">
        <span class="fab fa-linkedin fa-2x"></span>
      </a>
```

**XPath** (use in browser DevTools):
```
.social-media-link-icon--linkedin
```

**How to Replicate**:
1. Open any affected page in your browser
2. Press F12 to open DevTools
3. Go to Console tab
4. Run: `$x('.social-media-link-icon--linkedin')`
5. The element will be highlighted

**Affected Pages**:
- https://www.drupalasheville.com/
- https://www.drupalasheville.com/events/2026/schedule

---

#### Pattern 2: Affects 2 page(s) - 2 occurrence(s)

**Scanner**: axe
**Rule**: [link-name](https://dequeuniversity.com/rules/axe/4.12/link-name?application=playwright)
**Impact**: serious
**Issue**: Links must have discernible text

**HTML Pattern**:
```html
<a class="social-media-link-icon--mastodon" href="https://mstdn.social/@drupalasheville">
        <span class="fab fa-mastodon fa-2x"></span>
      </a>
```

**XPath** (use in browser DevTools):
```
.social-media-link-icon--mastodon
```

**How to Replicate**:
1. Open any affected page in your browser
2. Press F12 to open DevTools
3. Go to Console tab
4. Run: `$x('.social-media-link-icon--mastodon')`
5. The element will be highlighted

**Affected Pages**:
- https://www.drupalasheville.com/
- https://www.drupalasheville.com/events/2026/schedule

---

#### Pattern 3: Affects 2 page(s) - 2 occurrence(s)

**Scanner**: axe
**Rule**: [link-name](https://dequeuniversity.com/rules/axe/4.12/link-name?application=playwright)
**Impact**: serious
**Issue**: Links must have discernible text

**HTML Pattern**:
```html
<a class="social-media-link-icon--youtube_channel" href="https://www.youtube.com/@DrupalAsheville">
        <span class="fab fa-youtube fa-2x"></span>
      </a>
```

**XPath** (use in browser DevTools):
```
.social-media-link-icon--youtube_channel
```

**How to Replicate**:
1. Open any affected page in your browser
2. Press F12 to open DevTools
3. Go to Console tab
4. Run: `$x('.social-media-link-icon--youtube_channel')`
5. The element will be highlighted

**Affected Pages**:
- https://www.drupalasheville.com/
- https://www.drupalasheville.com/events/2026/schedule

---

#### Pattern 4: Affects 2 page(s) - 2 occurrence(s)

**Scanner**: axe
**Rule**: [link-name](https://dequeuniversity.com/rules/axe/4.12/link-name?application=playwright)
**Impact**: serious
**Issue**: Links must have discernible text

**HTML Pattern**:
```html
<a class="social-media-link-icon--bluesky" href="https://bsky.app/profile/drupalasheville.com">
        <span class="fab fa-bluesky fa-2x"></span>
      </a>
```

**XPath** (use in browser DevTools):
```
.social-media-link-icon--bluesky
```

**How to Replicate**:
1. Open any affected page in your browser
2. Press F12 to open DevTools
3. Go to Console tab
4. Run: `$x('.social-media-link-icon--bluesky')`
5. The element will be highlighted

**Affected Pages**:
- https://www.drupalasheville.com/
- https://www.drupalasheville.com/events/2026/schedule

---

#### Pattern 5: Affects 2 page(s) - 2 occurrence(s)

**Scanner**: axe
**Rule**: [link-name](https://dequeuniversity.com/rules/axe/4.12/link-name?application=playwright)
**Impact**: serious
**Issue**: Links must have discernible text

**HTML Pattern**:
```html
<a class="social-media-link-icon--facebook" href="https://www.facebook.com/drupalasheville">
        <span class="fab fa-facebook fa-2x"></span>
      </a>
```

**XPath** (use in browser DevTools):
```
.social-media-link-icon--facebook
```

**How to Replicate**:
1. Open any affected page in your browser
2. Press F12 to open DevTools
3. Go to Console tab
4. Run: `$x('.social-media-link-icon--facebook')`
5. The element will be highlighted

**Affected Pages**:
- https://www.drupalasheville.com/
- https://www.drupalasheville.com/events/2026/schedule

---

> 💡 **Pro Tip**: These patterns likely come from shared components or templates in your codebase. Fix them in the component/template source, and the fix will propagate to all affected pages.

## 📊 Detailed Results

Complete scan results for all tested pages:

| Submitted URL | Final URL | Status | HTTP | Redirected | Time (ms) | axe Errors | ALFA Errors | Equal Access Errors | AccessLint Errors | Duplicates | Notes |
|---|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---|
| https://www.drupalasheville.com/ | https://www.drupalasheville.com/ | OK | 200 | no | 17289 | 24 | 0 | 0 | 0 | 11 | Skipped (not requested) |
|  |  |  |  |  |  |  |  |  |  | axe failed rules: color-contrast, link-name, region |
| https://www.drupalasheville.com/events/2026/schedule | https://www.drupalasheville.com/events/2026/schedule | OK | 200 | no | 15718 | 10 | 0 | 0 | 0 | 4 | Skipped (not requested) |
|  |  |  |  |  |  |  |  |  |  | axe failed rules: color-contrast, heading-order, link-name, region |

## Detailed Failure Information (ALFA)

## Detailed Failure Information (axe)

### https://www.drupalasheville.com/

#### Rule: [color-contrast](https://dequeuniversity.com/rules/axe/4.12/color-contrast?application=playwright)
**Impact**: serious
**WCAG**: [SC 1.4.3](https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum) (Level AA)

**Failure 1:**
- First identified: 2026-08-20
- Message: Elements must meet minimum color contrast ratio thresholds
- HTML: `<a title="View user profile." href="/u/amyjune-hineline">AmyJune Hineline</a>`
- XPath: `article[data-history-node-id="551"] > header > .node__meta > .node__byline > .node__author > span > a[title="View user profile."][href$="amyjune-hineline"]`

**Failure 2:**
- First identified: 2026-08-20
- Message: Elements must meet minimum color contrast ratio thresholds
- HTML: `<a title="View user profile." href="/u/amyjune-hineline">AmyJune Hineline</a>`
- XPath: `article[data-history-node-id="550"] > header > .node__meta > .node__byline > .node__author > span > a[title="View user profile."][href$="amyjune-hineline"]`

**Failure 3:**
- First identified: 2026-08-20
- Message: Elements must meet minimum color contrast ratio thresholds
- HTML: `<a title="View user profile." href="/u/amyjune-hineline">AmyJune Hineline</a>`
- XPath: `article[data-history-node-id="548"] > header > .node__meta > .node__byline > .node__author > span > a[title="View user profile."][href$="amyjune-hineline"]`

**Failure 4:**
- First identified: 2026-08-20
- Message: Elements must meet minimum color contrast ratio thresholds
- HTML: `<a href="/events/2026/news" class="button--primary">More News</a>`
- XPath: `.button--primary`

#### Rule: [link-name](https://dequeuniversity.com/rules/axe/4.12/link-name?application=playwright)
**Impact**: serious
**WCAG**: [SC 2.4.4](https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context), [SC 4.1.2](https://www.w3.org/WAI/WCAG22/Understanding/name-role-value) (Level A)

**Failure 1:**
- First identified: 2026-08-20
- Message: Links must have discernible text
- HTML: `<a class="social-media-link-icon--linkedin" href="https://www.linkedin.com/company/drupal-asheville/">         <span class="fab fa-linkedin fa-2x"></span>       </a>`
- XPath: `.social-media-link-icon--linkedin`

**Failure 2:**
- First identified: 2026-08-20
- Message: Links must have discernible text
- HTML: `<a class="social-media-link-icon--mastodon" href="https://mstdn.social/@drupalasheville">         <span class="fab fa-mastodon fa-2x"></span>       </a>`
- XPath: `.social-media-link-icon--mastodon`

**Failure 3:**
- First identified: 2026-08-20
- Message: Links must have discernible text
- HTML: `<a class="social-media-link-icon--youtube_channel" href="https://www.youtube.com/@DrupalAsheville">         <span class="fab fa-youtube fa-2x"></span>       </a>`
- XPath: `.social-media-link-icon--youtube_channel`

**Failure 4:**
- First identified: 2026-08-20
- Message: Links must have discernible text
- HTML: `<a class="social-media-link-icon--bluesky" href="https://bsky.app/profile/drupalasheville.com">         <span class="fab fa-bluesky fa-2x"></span>       </a>`
- XPath: `.social-media-link-icon--bluesky`

**Failure 5:**
- First identified: 2026-08-20
- Message: Links must have discernible text
- HTML: `<a class="social-media-link-icon--facebook" href="https://www.facebook.com/drupalasheville">         <span class="fab fa-facebook fa-2x"></span>       </a>`
- XPath: `.social-media-link-icon--facebook`

#### Rule: [region](https://dequeuniversity.com/rules/axe/4.12/region?application=playwright)
**Impact**: moderate

**Failure 1:**
- First identified: 2026-08-20
- Message: All page content should be contained by landmarks
- HTML: `<h1 class="site-hero__title">       Drupal Camp Asheville           </h1>`
- XPath: `.site-hero__title`

**Failure 2:**
- First identified: 2026-08-20
- Message: All page content should be contained by landmarks
- HTML: `<div class="site-hero__desc">       <p>Drupal Camp Asheville is an annual two-day conference that focuses on hands-on training and knowledge sharing for all levels of Drupal experience, with a bonus community day spent together in nature.</p>     </div>`
- XPath: `.site-hero__desc`

**Failure 3:**
- First identified: 2026-08-20
- Message: All page content should be contained by landmarks
- HTML: `<div class="site-hero__cta">         <a href="/events/2026" class="site-hero__media-cta">           All the details           <div class="site-hero__media-cta-icon"></div>         </a>       </div>`
- XPath: `.site-hero__cta`

**Failure 4:**
- First identified: 2026-08-20
- Message: All page content should be contained by landmarks
- HTML: `<span class="site-hero-details__item">           Jul 09-12, 2026        </span>`
- XPath: `.site-hero-details__item:nth-child(1)`

**Failure 5:**
- First identified: 2026-08-20
- Message: All page content should be contained by landmarks
- HTML: `<span class="site-hero-details__item">           Asheville, NC         </span>`
- XPath: `.site-hero-details__item:nth-child(2)`

*... and 10 more failures for this rule*

### https://www.drupalasheville.com/events/2026/schedule

#### Rule: [color-contrast](https://dequeuniversity.com/rules/axe/4.12/color-contrast?application=playwright)
**Impact**: serious
**WCAG**: [SC 1.4.3](https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum) (Level AA)

**Failure 1:**
- First identified: 2026-08-20
- Message: Elements must meet minimum color contrast ratio thresholds
- HTML: `<a href="/events" class="breadcrumb__link">Events</a>`
- XPath: `.breadcrumb__link[href$="events"]`

**Failure 2:**
- First identified: 2026-08-20
- Message: Elements must meet minimum color contrast ratio thresholds
- HTML: `<a href="/events/2026" class="breadcrumb__link">2026</a>`
- XPath: `.breadcrumb__link[href="/events/2026"]`

**Failure 3:**
- First identified: 2026-08-20
- Message: Elements must meet minimum color contrast ratio thresholds
- HTML: `<input class="button--primary button js-form-submit form-submit" data-drupal-selector="edit-submit-session-list" type="submit" id="edit-submit-session-list" value="Filter">`
- XPath: `#edit-submit-session-list`

#### Rule: [heading-order](https://dequeuniversity.com/rules/axe/4.12/heading-order?application=playwright)
**Impact**: moderate

**Failure 1:**
- First identified: 2026-08-20
- Message: Heading levels should only increase by one
- HTML: `<h3 id="slot-1145am---245pm" class="view-session-schedule__title"><time datetime="2026-07-09T11:45:00-04:00">11:45am</time>  - <time datetime="2026-07-09T14:45:00-04:00">2:45pm</time> </h3>`
- XPath: `#slot-1145am---245pm`

#### Rule: [link-name](https://dequeuniversity.com/rules/axe/4.12/link-name?application=playwright)
**Impact**: serious
**WCAG**: [SC 2.4.4](https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context), [SC 4.1.2](https://www.w3.org/WAI/WCAG22/Understanding/name-role-value) (Level A)

**Failure 1:**
- First identified: 2026-08-20
- Message: Links must have discernible text
- HTML: `<a class="social-media-link-icon--linkedin" href="https://www.linkedin.com/company/drupal-asheville/">         <span class="fab fa-linkedin fa-2x"></span>       </a>`
- XPath: `.social-media-link-icon--linkedin`

**Failure 2:**
- First identified: 2026-08-20
- Message: Links must have discernible text
- HTML: `<a class="social-media-link-icon--mastodon" href="https://mstdn.social/@drupalasheville">         <span class="fab fa-mastodon fa-2x"></span>       </a>`
- XPath: `.social-media-link-icon--mastodon`

**Failure 3:**
- First identified: 2026-08-20
- Message: Links must have discernible text
- HTML: `<a class="social-media-link-icon--youtube_channel" href="https://www.youtube.com/@DrupalAsheville">         <span class="fab fa-youtube fa-2x"></span>       </a>`
- XPath: `.social-media-link-icon--youtube_channel`

**Failure 4:**
- First identified: 2026-08-20
- Message: Links must have discernible text
- HTML: `<a class="social-media-link-icon--bluesky" href="https://bsky.app/profile/drupalasheville.com">         <span class="fab fa-bluesky fa-2x"></span>       </a>`
- XPath: `.social-media-link-icon--bluesky`

**Failure 5:**
- First identified: 2026-08-20
- Message: Links must have discernible text
- HTML: `<a class="social-media-link-icon--facebook" href="https://www.facebook.com/drupalasheville">         <span class="fab fa-facebook fa-2x"></span>       </a>`
- XPath: `.social-media-link-icon--facebook`

#### Rule: [region](https://dequeuniversity.com/rules/axe/4.12/region?application=playwright)
**Impact**: moderate

**Failure 1:**
- First identified: 2026-08-20
- Message: All page content should be contained by landmarks
- HTML: `<h1 class="title page-title">2026 Schedule</h1>`
- XPath: `h1`

