{
  "doc": {
    "id": "accessibility/configuration/axe-core-configuration",
    "title": "Axe Core® configuration in Cypress Accessibility",
    "description": "How Cypress Accessibility runs the Axe Core® ruleset, which rules are off by default, and how Cypress can tune rules for your project.",
    "section": "accessibility",
    "source_path": "/llm/markdown/accessibility/configuration/axe-core-configuration.md",
    "version": "fbc9225067c51c52ee13224e3b702cf8a025ec12",
    "updated_at": "2026-08-14T12:36:26.878Z",
    "headings": [
      {
        "id": "accessibility/configuration/axe-core-configuration#axe-core-configuration",
        "text": "Axe Core® configuration",
        "level": 1
      },
      {
        "id": "accessibility/configuration/axe-core-configuration#how-cypress-can-tune-the-ruleset-for-your-project",
        "text": "How Cypress can tune the ruleset for your project",
        "level": 2
      },
      {
        "id": "accessibility/configuration/axe-core-configuration#adjustments-you-can-make-yourself",
        "text": "Adjustments you can make yourself",
        "level": 3
      },
      {
        "id": "accessibility/configuration/axe-core-configuration#rules-that-are-off-by-default",
        "text": "Rules that are off by default",
        "level": 2
      },
      {
        "id": "accessibility/configuration/axe-core-configuration#component-testing",
        "text": "Component testing",
        "level": 2
      },
      {
        "id": "accessibility/configuration/axe-core-configuration#axe-core-library-version-and-updates",
        "text": "Axe-Core® library version and updates",
        "level": 2
      },
      {
        "id": "accessibility/configuration/axe-core-configuration#see-also",
        "text": "See also",
        "level": 2
      }
    ]
  },
  "chunks": [
    {
      "id": "accessibility/configuration/axe-core-configuration#how-cypress-can-tune-the-ruleset-for-your-project",
      "doc_id": "accessibility/configuration/axe-core-configuration",
      "heading": "How Cypress can tune the ruleset for your project",
      "heading_level": 2,
      "content_markdown": "## How Cypress can tune the ruleset for your project\n\nTeams reach out for a few common adjustments. In each case, Cypress applies the change on your behalf and can regenerate historical runs so you can preview the effect before adopting it:\n\n*   **Enable a rule that is off by default.** The most common request is turning on [color contrast checking](#rules-that-are-off-by-default) for a project where you've confirmed it produces reliable results.\n*   **Turn off a rule that is a known false positive.** If a specific rule consistently misfires because of a third-party framework you can't change, it can be disabled project-wide so it stops adding noise to your reports.\n*   **Scope the report to a conformance target.** Cypress can narrow the ruleset to the standard your team is committed to, such as WCAG 2.1 Level A and AA, so the report reflects exactly the criteria you're measuring against.\n\nWe're happy to have a call to dial in your report configuration and make sure you're getting the most useful reports possible.\n\n### Adjustments you can make yourself\n\nSome ways of shaping your results don't require any rule configuration and are fully in your control:\n\n*   To ignore a specific rule for individual elements, add the [`data-a11y-ignore` attribute](/llm/markdown/accessibility/configuration/ignoring-rules-per-element.md) in your application code.\n*   To keep a rule enabled but stop a particular element or page from being reported, use [`elementFilters`](/llm/markdown/accessibility/configuration/elementfilters.md) or [`viewFilters`](/llm/markdown/accessibility/configuration/viewfilters.md).\n*   To decide which findings block a build in CI, parse your run's results with the [Results API](/llm/markdown/accessibility/results-api.md). Leaving a rule reported but non-blocking is often the best choice, since you keep full visibility into the issue.\n",
      "section": "accessibility",
      "anchors": [
        "how-cypress-can-tune-the-ruleset-for-your-project"
      ],
      "path": "/llm/json/chunked/accessibility/configuration/axe-core-configuration.json",
      "token_estimate": 356
    },
    {
      "id": "accessibility/configuration/axe-core-configuration#adjustments-you-can-make-yourself",
      "doc_id": "accessibility/configuration/axe-core-configuration",
      "heading": "Adjustments you can make yourself",
      "heading_level": 3,
      "content_markdown": "### Adjustments you can make yourself\n\nSome ways of shaping your results don't require any rule configuration and are fully in your control:\n\n*   To ignore a specific rule for individual elements, add the [`data-a11y-ignore` attribute](/llm/markdown/accessibility/configuration/ignoring-rules-per-element.md) in your application code.\n*   To keep a rule enabled but stop a particular element or page from being reported, use [`elementFilters`](/llm/markdown/accessibility/configuration/elementfilters.md) or [`viewFilters`](/llm/markdown/accessibility/configuration/viewfilters.md).\n*   To decide which findings block a build in CI, parse your run's results with the [Results API](/llm/markdown/accessibility/results-api.md). Leaving a rule reported but non-blocking is often the best choice, since you keep full visibility into the issue.\n",
      "section": "accessibility",
      "anchors": [
        "adjustments-you-can-make-yourself"
      ],
      "path": "/llm/json/chunked/accessibility/configuration/axe-core-configuration.json",
      "token_estimate": 129
    },
    {
      "id": "accessibility/configuration/axe-core-configuration#rules-that-are-off-by-default",
      "doc_id": "accessibility/configuration/axe-core-configuration",
      "heading": "Rules that are off by default",
      "heading_level": 2,
      "content_markdown": "## Rules that are off by default\n\nA small number of Axe-Core® rules are turned off in Cypress Accessibility by default. Color contrast can be enabled per project on request. The other two depend on live runtime behavior that isn't reproduced when Cypress re-renders a captured snapshot for analysis, so they can't be evaluated reliably.\n\n| Rule | Why it's off by default |\n| --- | --- |\n| Elements must meet minimum color contrast ratio thresholds | This is the slowest rule in the Axe-Core® ruleset and the one most likely to produce false positives or incomplete results. It works well in many projects, so we're happy to turn it on for you on request. |\n| `<video>` or `<audio>` elements must not play automatically | Detecting a violation requires loading and playing the media to measure how long it plays. Cypress analyzes a reconstructed snapshot of the page without playable media, so this rule can't be evaluated. |\n| Delayed refresh under 20 hours must not be used | This rule reads a page's meta refresh directive, which Cypress disables while it analyzes a run so the reconstructed page doesn't navigate away. With the directive disabled, the rule can't be evaluated. |\n\nIn addition, the custom [Cypress rule](/llm/markdown/accessibility/core-concepts/cypress-rules.md) _Interactive elements should be semantically correct_ is available in all projects but is not enabled by default. Reach out to Cypress if you'd like it turned on.\n\nYou can confirm which rules were turned off for any run in its Accessibility report. In the **Rules** view, disabled rules are listed with an **Ignored by configuration** status, so it's always clear which checks a run did and did not include.\n",
      "section": "accessibility",
      "anchors": [
        "rules-that-are-off-by-default"
      ],
      "path": "/llm/json/chunked/accessibility/configuration/axe-core-configuration.json",
      "token_estimate": 373
    },
    {
      "id": "accessibility/configuration/axe-core-configuration#component-testing",
      "doc_id": "accessibility/configuration/axe-core-configuration",
      "heading": "Component testing",
      "heading_level": 2,
      "content_markdown": "## Component testing\n\nCypress Accessibility works with [component testing](/llm/markdown/app/component-testing/get-started.md) as well as end-to-end testing. Alongside the rules that are off by default above, **page-level rules do not run for component tests**. Because a component is usually a fragment of a page rather than a complete document, rules that assert on overall page structure would report failures that don't apply to a component in isolation.\n\nRules skipped for component tests include page-structure and document-level checks, such as whether the page has a main landmark, a single top-level heading, a language attribute, and a document title. Rules that evaluate the components themselves, such as color contrast (when enabled), button naming, and image alternative text, run as normal.\n\nThe exact set of skipped rules isn't a fixed list Cypress maintains. It's derived from which rules Axe-Core® classifies as page-level, so it can shift when Cypress updates its Axe-Core® version. In a component's report, these page-structure rules are reported as not applicable rather than as failures.\n",
      "section": "accessibility",
      "anchors": [
        "component-testing"
      ],
      "path": "/llm/json/chunked/accessibility/configuration/axe-core-configuration.json",
      "token_estimate": 216
    },
    {
      "id": "accessibility/configuration/axe-core-configuration#axe-core-library-version-and-updates",
      "doc_id": "accessibility/configuration/axe-core-configuration",
      "heading": "Axe-Core® library version and updates",
      "heading_level": 2,
      "content_markdown": "## Axe-Core® library version and updates\n\nCypress pins a specific, tested version of the Axe-Core® library. New Axe-Core® versions are released several times a year. While Cypress doesn't commit to updating our internal version within a specific timeframe, we always wait at least 30 days before adopting a new release.\n\nBecause some updates introduce new rules or change how existing issues are detected, this buffer gives you time to adjust how you use the [Results API](/llm/markdown/accessibility/results-api.md) if needed. You can track Axe-Core® releases [on GitHub](https://github.com/dequelabs/axe-core/releases).\n\nThe exact Axe-Core® version used for a given run is shown in the **Properties** tab for that run in Cypress Cloud, and is also included as `axeVersion` in the [Results API](/llm/markdown/accessibility/results-api.md) response. To get a heads-up in CI when the version changes, see [how to detect a change in the axe-core version](/llm/markdown/accessibility/results-api.md#how-to-detect-a-change-in-the-axe-core-version).\n",
      "section": "accessibility",
      "anchors": [
        "axe-core-library-version-and-updates"
      ],
      "path": "/llm/json/chunked/accessibility/configuration/axe-core-configuration.json",
      "token_estimate": 183
    },
    {
      "id": "accessibility/configuration/axe-core-configuration#see-also",
      "doc_id": "accessibility/configuration/axe-core-configuration",
      "heading": "See also",
      "heading_level": 2,
      "content_markdown": "## See also\n\n*   [Configuration overview](/llm/markdown/accessibility/configuration/overview.md) lists every App Quality Config option you can set yourself and how to apply and regenerate configuration.\n*   [Results API](/llm/markdown/accessibility/results-api.md) is where you decide which rules block a build in CI.\n*   [Ignore rules per element - `data-a11y-ignore`](/llm/markdown/accessibility/configuration/ignoring-rules-per-element.md) turns off specific rules for individual elements from your application code.\n*   [Cypress rules](/llm/markdown/accessibility/core-concepts/cypress-rules.md) documents the custom rules Cypress layers on top of Axe-Core®.\n*   [Cypress Accessibility FAQ](/llm/markdown/accessibility/faq.md) answers common questions about rules and configuration.\n",
      "section": "accessibility",
      "anchors": [
        "see-also"
      ],
      "path": "/llm/json/chunked/accessibility/configuration/axe-core-configuration.json",
      "token_estimate": 105
    }
  ]
}