Jump to content
This Wiki page is edited by participants of the WCAG Working Group. It does not necessarily represent consensus and it may have incorrect information or information that is not supported by other Working Group participants, WAI, or W3C. It may also have some very useful information.

Source Format Refactoring/Data Format

From WCAG WG

Output data format requirements

  • Two kind of information:
    • Structure
    • Language
    • Almost every time we need language and structure information
  • Could be traversed then by a PHP file that allows querying/splitting/recombining the structure and/or language information
  • Massive JSON files

WCAG Structure:

{
    "principles": [{ 
        "id": "WCAG2:perceivable",
        "num": "1",
        "title": "Perceivable",
        "guidelines": [{
            "id": "WCAG2:text-equiv",
            "num": "1.1",
            "title": "Text Alternatives",
            "intro": "Provide text alternatives for any non-text content so that it can be changed into other forms people need, such as large print, braille, speech, symbols or simpler language.",
            "techniques": {
                "advisory": [
                    {"id": "TECH:future", "text": "Providing sign language videos for audio-only files"}
                ]
            },
            "successcriteria": [{
                "id": "WCAG2:text-equiv-alt",
                "num": "1.1.1",
                "level": "A",
                "title": "Non-text Content",
                "intro": "All non-text content that is presented to the user has a text alternative that serves the equivalent purpose, except for the situations listed below",
                "details": [{
                  "type": "ulist",
                  "items": [{
                    "title": "Controls, Input",
                    "text": "If non-text content is a control or accepts user input, then it has a name that describes its purpose. (Refer to Guideline 4.1 for additional requirements for controls and content that accepts user input.)"
                  },{
                    "title": "Time-Based Media",
                    "text": "If non-text content is time-based media, then text alternatives at least provide descriptive identification of the non-text content. (Refer to Guideline 1.2 for additional requirements for media.)"
                  },{
                    "title": "Test",
                    "text": "If non-text content is a test or exercise that would be invalid if presented in text, then text alternatives at least provide descriptive identification of the non-text content."
                  },{
                    "title": "Sensory",
                    "text": "If non-text content is primarily intended to create a specific sensory experience, then text alternatives at least provide descriptive identification of the non-text content."
                  },{
                    "title": "CAPTCHA",
                    "text": "If the purpose of non-text content is to confirm that content is being accessed by a person rather than a computer, then text alternatives that identify and describe the purpose of the non-text content are provided, and alternative forms of CAPTCHA using output modes for different types of sensory perception are provided to accommodate different disabilities."
                  },{
                    "title": "Decoration, Formatting, Invisible",
                    "text": "If non-text content is pure decoration, is used only for visual formatting, or is not presented to users, then it is implemented in a way that it can be ignored by assistive technology."
                  }]
                }],
                "techniques": {
                    "sufficient": [{
                        "situations": [
                            {
                                "title": "If a short description can serve the same purpose and present the same information as the non-text content",
                                "techniques": [
                                    {"id": "TECH:G94", "append": "using one of the following techniques:"}
                                ],
                                "sections": [
                                    {
                                        "title": "Short text alternative techniques for Situation A",
                                        "techniques": [
                                            {"id": "TECH:ARIA6"},
                                            {"id": "TECH:ARIA10"},
                                            {"id": "TECH:G196"},
                                            {"id": "TECH:FLASH1"},
                                            {"id": "TECH:FLASH5"},
                                            {"id": "TECH:FLASH28"},
                                            {"id": "TECH:H2"},
                                            {"id": "TECH:H35"},
                                            {"id": "TECH:H37"},
                                            {"id": "TECH:H53"},
                                            {"id": "TECH:H86"},
                                            {"id": "TECH:PDF1"},
                                            {"id": "TECH:SL5"}
                                        ]
                                    }
                                ]
                            },
                            {
                                "title": "If a short description can not serve the same purpose and present the same information as the non-text content (e.g., a chart or diagram)",
                                "techniques": [
                                    {"id": "TECH:G95", "append": "by using one of the following short text alternative techniques <strong>AND</strong> one of the long text alternative techniques below:"}
                                ],
                                "sections": [
                                    {
                                        "title": "Short text alternative techniques for Situation B",
                                        "techniques": [
                                            {"id": "TECH:ARIA6"},
                                            {"id": "TECH:ARIA10"},
                                            {"id": "TECH:G196"},
                                            {"id": "TECH:FLASH1"},
                                            {"id": "TECH:FLASH5"},
                                            {"id": "TECH:FLASH28"},
                                            {"id": "TECH:H2"},
                                            {"id": "TECH:H35"},
                                            {"id": "TECH:H37"},
                                            {"id": "TECH:H53"},
                                            {"id": "TECH:H86"},
                                            {"id": "TECH:PDF1"},
                                            {"id": "TECH:SL5"}
                                        ]
                                    },
                                    {
                                        "title": "Long text alternative techniques for Situation B",
                                        "techniques": [
                                            {"id": "TECH:ARIA15"},
                                            {"id": "TECH:G73"},
                                            {"id": "TECH:G74"},
                                            {"id": "TECH:G92"},
                                            {"id": "TECH:FLASH2"},
                                            {"id": "TECH:FLASH11"},
                                            {"id": "TECH:H45"},
                                            {"id": "TECH:H53"},
                                            {"id": "TECH:SL8"}
                                        ]
                                    }
                                ]
                            }
                        ]
                    }]
                }
            }]
        }]
    }]
}

Techniques:

{
    "G1": "Adding a link at the top of each page that goes directly to the main content area",
    "G4": "Allowing the content to be paused and restarted from where it was paused"
}