---
title: "Quality gate (publishing)"
manual: "Accessibility Quality Gate"
version: "main"
permalink: "https://docs.typo3.org/permalink/priebera/typo3-a11y-quality-gate:configuration-quality-gate@main"
source: "Configuration/QualityGate.rst"
rendered: "2026-09-17T16:05:02+00:00"
---

# Quality gate (publishing) {#quality-gate-publishing}

The quality gate evaluates the open findings of a page when an editor publishes
or unhides it. It is configured on the **Publishing rules** tab of the
Settings view and stored in the ruleset record `tx_a11y_ruleset`.

## Ruleset fields {#ruleset-fields}

-   **publish_mode**

    -   *Type:* int
    -   *Default:* 0

    Behaviour of the gate when a page is published or unhidden.

    -   **`0`**

        Disabled. Nothing happens on publish.

    -   **`1`**

        Warn. The editor sees a warning listing the blocking findings and can
        continue after reviewing it. Available in all editions.

    -   **`2`**

        Block. The publish action is rejected while the thresholds are exceeded.
        Requires an active licence.

-   **threshold_critical**

    -   *Type:* int
    -   *Default:* 0

    Maximum number of open findings with severity *critical* that a page may
    have. `0` means no critical finding is tolerated.

-   **threshold_warning**

    -   *Type:* int
    -   *Default:* -1

    Maximum number of open findings with severity *warning*. `-1` disables the
    warning threshold, so warnings never trigger the gate.

-   **site_identifier**

    -   *Type:* string
    -   *Default:* (empty)

    Restricts the ruleset to one TYPO3 site. Must match the identifier of the
    site configuration. An empty value marks the global default ruleset.

## How the gate behaves {#how-the-gate-behaves}

-   The gate only evaluates findings that are open. Ignored findings do not
    count towards the thresholds.
-   An ignore with an expiry date is temporary. Once the date has passed, AQG
    sets the finding back to the open status, and it counts towards the
    thresholds again exactly like any other open finding. Expect a page that
    passed the gate to start failing it when an ignore expires. See
    [Ignoring findings](https://docs.typo3.org/permalink/priebera/typo3-a11y-quality-gate:usage-page-detail-ignore@main).
-   The gate uses the findings that are currently stored. A page that has never
    been scanned has no findings and therefore always passes. Schedule regular
    scans so that the gate works on current data; see [Automation](https://docs.typo3.org/permalink/priebera/typo3-a11y-quality-gate:automation@main).
-   In warn mode the editor is informed but keeps control over the publication.
    In block mode the DataHandler operation is rejected.

> [!WARNING]
> The quality gate is an editorial safeguard, not a security control, and not
> a conformance statement. A page that passes the gate can still contain
> accessibility problems that automated rules cannot detect.

## Per-site rulesets {#per-site-rulesets}

With an active licence, additional rulesets can be created and bound to a site
identifier. The Settings view then offers a site selector, and each site can
have its own thresholds, publish mode, enabled rules and remote scan access
settings. Installations without a licence use the single global default ruleset.
