*/
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