# axe-core marquee error: marquee element fails accessibility - how to fix it

## TL;DR

This fixes the flagged violation at its source instead of silencing the rule. The page uses a marquee element, which scrolls content automatically and cannot be paused. Follow the steps, re-run the scan, and gate the rule in CI so it stays fixed.

## The error, verbatim

```text
axe-core marquee error: marquee element fails accessibility
```

## Fix it step by step

### Step 1

Remove the marquee element entirely.

Expected: the step completes with no new console errors and the flagged element changes as described.

### Step 2

Replace scrolling announcements with static content, or a component the user can pause.

Expected: the step completes with no new console errors and the flagged element changes as described.

### Step 3

If motion is essential, gate it behind prefers-reduced-motion and add pause controls.

Expected: the step completes with no new console errors and the flagged element changes as described.

### Step 4

Re-run axe.

Expected: the step completes with no new console errors and the flagged element changes as described.

## When to use this skill

- Your scan report lists this exact rule or failure
- You are clearing automated accessibility failures before release or audit
- A CI accessibility gate is red because of this item

## When NOT to use this skill

- Like blink, marquee is obsolete; there is no accessible way to keep one.
- The issue only appears in manual screen-reader testing and no automated rule flags it
- You are doing a full manual WCAG audit; this skill covers one automated check

## Compatibility

axe-core 4.8+ (rule marquee, WCAG 2.2.2).

## Variant phrasings

### axe marquee element fails accessibility

Same underlying issue and the same fix. Searchers phrase it different ways; the remediation does not change.

## Why it happens

The page uses a marquee element, which scrolls content automatically and cannot be paused. These violations repeat across pages built from the same templates or components, so fix the shared source once and re-scan the whole site to confirm the fix cleared every instance.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_b8PV4g3dK8gBDjjIPuPrdA
