*/ const ATTRIBUTES = array( 'HTML' => array( 'lang' ), 'BODY' => array(), 'HEAD' => array(), 'MAIN' => array( 'id' ), 'ARTICLE' => array( 'id' ), 'A' => array( 'href', 'target', 'rel', 'class', 'title', 'aria-label', 'aria-labelledby', 'aria-describedby', 'aria-hidden', 'role', 'tabindex', 'id' ), 'BUTTON' => array( 'class', 'title', 'aria-label', 'aria-labelledby', 'aria-hidden', 'type', 'tabindex', 'id' ), 'IMG' => array( 'alt', 'class', 'src', 'width', 'height', 'role', 'aria-hidden', 'aria-label', 'aria-labelledby' ), 'INPUT' => array( 'type', 'id', 'name', 'placeholder', 'aria-label', 'aria-labelledby', 'title', 'aria-hidden', 'tabindex' ), 'SELECT' => array( 'id', 'name', 'aria-label', 'aria-labelledby', 'title', 'aria-hidden' ), 'TEXTAREA' => array( 'id', 'name', 'placeholder', 'aria-label', 'aria-labelledby', 'title', 'aria-hidden' ), 'LABEL' => array( 'for' ), 'IFRAME' => array( 'title', 'src', 'aria-hidden', 'aria-label', 'width', 'height' ), 'META' => array( 'name', 'content' ), 'VIDEO' => array( 'autoplay', 'controls', 'muted' ), 'AUDIO' => array( 'autoplay', 'controls', 'muted' ), 'TRACK' => array( 'kind' ), 'TABLE' => array( 'role' ), 'SVG' => array( 'aria-label', 'aria-hidden', 'role' ), ); /** * Analyzes a page. * * @param string $html Full HTML document. * @return array { * @type array[] $elements Recorded elements, keyed by ordinal. * @type array $ids Count of each id value. * @type array $label_for Set of ids that a