Built-in <audio> and <video> controls do not work well with accessibility: controls are not in a logic tab order, all buttons names are reported as "button", the timeline slider values are reported as percentages, etc.
Created attachment 34335 [details] proposed patch
<rdar://7065736 >
http://trac.webkit.org/changeset/47110
This patch seem to have broken the Qt build: failed 123 test cases (2%) had incorrect layout 3031 test cases (58%) crashed
Comment on attachment 34335 [details] proposed patch Was rolled out in: http://trac.webkit.org/changeset/47140 failing tests were skipped in: http://trac.webkit.org/changeset/47128
Created attachment 38374 [details] revised patch This is a minor rework of the patch reviewed last week. New this time are updated layout test results for Leopard and Windows, and some gtk localized strings I missed last time.
Comment on attachment 38374 [details] revised patch > +String AccessibilityMediaTimeline::valueDescription() const > +{ > + float time = static_cast<HTMLInputElement*>(m_renderer->node())->value().toFloat(); What is the guarantee that our renderer is an input element? > MediaControlMuteButtonElement::MediaControlMuteButtonElement(Document* document, HTMLMediaElement* element) > - : MediaControlInputElement(document, MEDIA_CONTROLS_MUTE_BUTTON, "button", element, element->muted() ? MediaUnMuteButton : MediaMuteButton) > + :: MediaControlInputElement(document, MEDIA_CONTROLS_MUTE_BUTTON, "button", element) > { > } This change looks bogus (:: vs :) r+ assuming you fix the bogosity and explain why the above cast is safe
> > +String AccessibilityMediaTimeline::valueDescription() const > > +{ > > + float time = static_cast<HTMLInputElement*>(m_renderer->node())->value().toFloat(); > > What is the guarantee that our renderer is an input element? AccessibilityMediaTimeline is only created if the node is an input element, but I will add an ASSERT() in any case. > > MediaControlMuteButtonElement::MediaControlMuteButtonElement(Document* document, HTMLMediaElement* element) > > - : MediaControlInputElement(document, MEDIA_CONTROLS_MUTE_BUTTON, "button", element, element->muted() ? MediaUnMuteButton : MediaMuteButton) > > + :: MediaControlInputElement(document, MEDIA_CONTROLS_MUTE_BUTTON, "button", element) > > { > > } > > This change looks bogus (:: vs :) Indeed!
http://trac.webkit.org/changeset/47763