<?xml version = "1.0" encoding = "UTF-8"?>
<xs:schema xmlns="http://www.imsglobal.org/xsd/common/resourcea11ymetadata"
           targetNamespace="http://www.imsglobal.org/xsd/common/resourcea11ymetadata"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           version="IMS Core Accessibility 1.0"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">

  <xs:complexType name="ResourceAccessibilityMetadata.Type" abstract="false" mixed="false">
    <xs:annotation>
      <xs:documentation source="documentation">
        The container for resource accessibility metadata.
        As defined in the IMS Common Data Model:
        As defined by: https://www.w3.org/wiki/WebSchemas/Accessibility

        accessibilitySummary: A human-readable summary of specific accessibility features or deficiencies,
        consistent with the other accessibility metadata but expressing subtleties such as "short descriptions
        are present but long descriptions will be needed for non-visual users" or "short descriptions are
        present and no long descriptions are needed."
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="accessibilityFeature" type="AccessibilityFeature.type" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="accessibilityHazard" type="AccessibilityHazard.type" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="accessibilityAPI" type="AccessibilityAPI.type" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="accessibilityControl" type="AccessibilityControl.type" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="accessMode" type="AccessMode.type" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="accessModeSufficient" type="AccessModeSufficient.type" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="accessibilitySummary" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="AccessibilityFeature.type">
    <xs:annotation>
      <xs:documentation>
        Content features of the resource, such as accessible media, supported enhancements for accessibility and alternatives.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="alternativeText"/>
      <xs:enumeration value="annotations"/>
      <xs:enumeration value="audioDescription"/>
      <xs:enumeration value="bookmarks"/>
      <xs:enumeration value="braille"/>
      <xs:enumeration value="captions"/>
      <xs:enumeration value="ChemML"/>
      <xs:enumeration value="describedMath"/>
      <xs:enumeration value="displayTransformability"/>
      <xs:enumeration value="highContrastAudio"/>
      <xs:enumeration value="highContrastDisplay"/>
      <xs:enumeration value="index"/>
      <xs:enumeration value="largePrint"/>
      <xs:enumeration value="latex"/>
      <xs:enumeration value="longDescription"/>
      <xs:enumeration value="MathML"/>
      <xs:enumeration value="none"/>
      <xs:enumeration value="printPageNumbers"/>
      <xs:enumeration value="readingOrder"/>
      <xs:enumeration value="rubyAnnotations"/>
      <xs:enumeration value="signLanguage"/>
      <xs:enumeration value="structuralNavigation"/>
      <xs:enumeration value="synchronizedAudioText"/>
      <xs:enumeration value="tableOfContents"/>
      <xs:enumeration value="taggedPDF"/>
      <xs:enumeration value="tactileGraphic"/>
      <xs:enumeration value="tactileObject"/>
      <xs:enumeration value="timingControl"/>
      <xs:enumeration value="transcript"/>
      <xs:enumeration value="ttsMarkup"/>
      <xs:enumeration value="unlocked"/>
    </xs:restriction>
  </xs:simpleType>


  <xs:simpleType name="AccessibilityHazard.type">
    <xs:annotation>
      <xs:documentation>
        A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.0 guideline 2.3.
        If none of the hazards are known to exist instead of calling out each nonHazard it is recommended to use "none". If the content has hazard(s), include positive assertions for the hazards it has and negative assertions for the others.
        If the property is not set in the positive or negative or is specifically set to unknown, the state of hazards is not known.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="flashing"/>
      <xs:enumeration value="noFlashingHazard"/>
      <xs:enumeration value="motionSimulation"/>
      <xs:enumeration value="noMotionSimulationHazard"/>
      <xs:enumeration value="sound"/>
      <xs:enumeration value="noSoundHazard"/>
      <xs:enumeration value="unknown"/>
      <xs:enumeration value="none"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="AccessibilityAPI.type">
    <xs:annotation>
      <xs:documentation>
        Indicates that the resource is compatible with the referenced accessibility API.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="AndroidAccessibility"/>
      <xs:enumeration value="ARIA"/>
      <xs:enumeration value="ATK"/>
      <xs:enumeration value="AT-SPI"/>
      <xs:enumeration value="BlackberryAccessibility"/>
      <xs:enumeration value="iAccessible2"/>
      <xs:enumeration value="iOSAccessibility"/>
      <xs:enumeration value="JavaAccessibility"/>
      <xs:enumeration value="MacOSXAccessibility"/>
      <xs:enumeration value="MSAA"/>
      <xs:enumeration value="UIAutomation"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="AccessibilityControl.type">
    <xs:annotation>
      <xs:documentation>
        Identifies one or more input methods that allow access to all of the application functionality.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="fullKeyboardControl"/>
      <xs:enumeration value="fullMouseControl"/>
      <xs:enumeration value="fullSwitchControl"/>
      <xs:enumeration value="fullTouchControl"/>
      <xs:enumeration value="fullVideoControl"/>
      <xs:enumeration value="fullVoiceControl"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="AccessMode.type">
    <xs:annotation>
      <xs:documentation>
        The human sensory perceptual system or cognitive faculty through which a person may process or perceive information
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="auditory"/>
      <xs:enumeration value="chartOnVisual"/>
      <xs:enumeration value="chemOnVisual"/>
      <xs:enumeration value="colorDependent"/>
      <xs:enumeration value="diagramOnVisual"/>
      <xs:enumeration value="mathOnVisual"/>
      <xs:enumeration value="musicOnVisual"/>
      <xs:enumeration value="tactile"/>
      <xs:enumeration value="textOnVisual"/>
      <xs:enumeration value="textual"/>
      <xs:enumeration value="visual"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="AccessModeSufficient.type">
    <xs:annotation>
      <xs:documentation>
        A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="auditory"/>
      <xs:enumeration value="tactile"/>
      <xs:enumeration value="textual"/>
      <xs:enumeration value="visual"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="ResourceAccessibilityMetadata" type="ResourceAccessibilityMetadata.Type"/>


</xs:schema>
