# axe-core blink error: blink 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 blink element, which is obsolete and fails because flashing content 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 blink error: blink element fails accessibility
```

## Fix it step by step

### Step 1

Delete the blink element; it has been obsolete for years and no browser guarantees its behavior.

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

### Step 2

If the intent was to draw attention, use static styling like bold or a badge instead.

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

### Step 3

If motion is truly needed, use CSS animation with a prefers-reduced-motion media query that disables it.

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

### Step 4

Re-run axe to confirm the rule clears.

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

- Any replacement animation must be pausable, stoppable, or under 5 seconds.
- 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 blink, WCAG 2.2.2).

## Variant phrasings

### axe blink 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 blink element, which is obsolete and fails because flashing content 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_Ya7YkpiIdqWhvLu1E-rzmg
