WCAG · Schema

SuccessCriterion

A WCAG success criterion defining a testable requirement for web content accessibility.

AccessibilityW3CWCAGWeb StandardsDisabilityInclusive Design

Properties

Name Type Description
id string Unique identifier for the success criterion (e.g., 1.1.1, 2.4.7).
title string Short title of the success criterion.
description string Full normative text of the success criterion.
level string Conformance level: A (minimum), AA (standard), AAA (enhanced).
principle string The POUR principle this criterion belongs to.
guideline string Parent guideline identifier and title.
wcag_version string WCAG version that introduced or updated this criterion.
url string URL to the official specification text for this criterion.
understanding_url string URL to the Understanding WCAG document for this criterion.
sufficient_techniques array List of sufficient technique identifiers for meeting this criterion.
failures array List of failure technique identifiers that fail this criterion.
View JSON Schema on GitHub

JSON Schema

wcag-success-criterion-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/wcag/refs/heads/main/json-schema/wcag-success-criterion-schema.json",
  "title": "SuccessCriterion",
  "description": "A WCAG success criterion defining a testable requirement for web content accessibility.",
  "type": "object",
  "required": ["id", "title", "level", "principle", "guideline"],
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the success criterion (e.g., 1.1.1, 2.4.7).",
      "pattern": "^[1-4]\\.[1-9]\\.[0-9]+$",
      "example": "1.1.1"
    },
    "title": {
      "type": "string",
      "description": "Short title of the success criterion.",
      "example": "Non-text Content"
    },
    "description": {
      "type": "string",
      "description": "Full normative text of the success criterion.",
      "example": "All non-text content that is presented to the user has a text alternative that serves the equivalent purpose."
    },
    "level": {
      "type": "string",
      "enum": ["A", "AA", "AAA"],
      "description": "Conformance level: A (minimum), AA (standard), AAA (enhanced).",
      "example": "A"
    },
    "principle": {
      "type": "string",
      "enum": ["Perceivable", "Operable", "Understandable", "Robust"],
      "description": "The POUR principle this criterion belongs to.",
      "example": "Perceivable"
    },
    "guideline": {
      "type": "string",
      "description": "Parent guideline identifier and title.",
      "example": "1.1 Text Alternatives"
    },
    "wcag_version": {
      "type": "string",
      "description": "WCAG version that introduced or updated this criterion.",
      "enum": ["2.0", "2.1", "2.2"],
      "example": "2.0"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "URL to the official specification text for this criterion.",
      "example": "https://www.w3.org/TR/WCAG22/#non-text-content"
    },
    "understanding_url": {
      "type": "string",
      "format": "uri",
      "description": "URL to the Understanding WCAG document for this criterion.",
      "example": "https://www.w3.org/WAI/WCAG22/Understanding/non-text-content.html"
    },
    "sufficient_techniques": {
      "type": "array",
      "description": "List of sufficient technique identifiers for meeting this criterion.",
      "items": {
        "type": "string"
      },
      "example": ["G94", "H37", "H36"]
    },
    "failures": {
      "type": "array",
      "description": "List of failure technique identifiers that fail this criterion.",
      "items": {
        "type": "string"
      },
      "example": ["F3", "F13"]
    }
  }
}