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"
}