Bug 101263

Summary: AX: MathML types need to be semantically identified in AX tree
Product: WebKit Reporter: chris fleizach <cfleizach>
Component: AccessibilityAssignee: chris fleizach <cfleizach>
Status: RESOLVED FIXED    
Severity: Normal CC: abarth, apinheiro, bdakin, davidc, dbarton, dglazkov, dmazzoni, eric, fishd, fred.wang, jamesr, jdiggs, tkent+wkapi, webkit.review.bot
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
patch
none
patch
webkit-ews: commit-queue-
patch bdakin: review+

Description chris fleizach 2012-11-05 14:58:06 PST
We need to expose the semantic MathML types through the AX tree so that screen readers can effectively output math equations.

rdar://12637680
Comment 1 chris fleizach 2012-11-05 15:05:35 PST
Created attachment 172414 [details]
patch
Comment 2 chris fleizach 2012-11-05 16:20:46 PST
Created attachment 172432 [details]
patch
Comment 3 WebKit Review Bot 2012-11-05 16:23:23 PST
Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.
Comment 4 WebKit Review Bot 2012-11-05 16:23:45 PST
Attachment 172432 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'LayoutTests/ChangeLog', u'LayoutTests/plat..." exit_code: 1
Source/WebCore/rendering/mathml/RenderMathMLFenced.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 5 Early Warning System Bot 2012-11-05 16:30:45 PST
Comment on attachment 172432 [details]
patch

Attachment 172432 [details] did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14745225
Comment 6 Early Warning System Bot 2012-11-05 16:31:45 PST
Comment on attachment 172432 [details]
patch

Attachment 172432 [details] did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14726781
Comment 7 chris fleizach 2012-11-05 17:07:25 PST
Created attachment 172447 [details]
patch
Comment 8 Dominic Mazzoni 2012-11-05 22:56:33 PST
Comment on attachment 172447 [details]
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=172447&action=review

Unofficial review looks good.

> Source/WebCore/accessibility/AccessibilityRenderObject.cpp:251
> +        if (r->node()->isElementNode() && toElement(r->node())->isMathMLElement())

Should this line be in #if ENABLE(MATHML)? Have you tested compiling with and without this flag?

> Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1197
> +    if (isIgnoredElementWithinMathTree())

It's unfortunate to have to add yet another method that walks the whole parent chain every time accessibilityIsIgnored is called - but we can try to improve this in another change.

> Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2433
> +    if (isMathElement())

#if ENABLE(MATHML)
Comment 9 chris fleizach 2012-11-06 10:40:53 PST
(In reply to comment #8)
> (From update of attachment 172447 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=172447&action=review
> 
> Unofficial review looks good.
> 
> > Source/WebCore/accessibility/AccessibilityRenderObject.cpp:251
> > +        if (r->node()->isElementNode() && toElement(r->node())->isMathMLElement())
> 
> Should this line be in #if ENABLE(MATHML)? Have you tested compiling with and without this flag?
> 

Doing so now

> > Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1197
> > +    if (isIgnoredElementWithinMathTree())
> 
> It's unfortunate to have to add yet another method that walks the whole parent chain every time accessibilityIsIgnored is called - but we can try to improve this in another change.

https://bugs.webkit.org/show_bug.cgi?id=101370

> 
> > Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2433
> > +    if (isMathElement())
> 
> #if ENABLE(MATHML)

This one is actually OK since isMathElement() is just on AXObject and returns false by default without any MathML requirements
Comment 10 Beth Dakin 2012-11-13 12:36:16 PST
Comment on attachment 172447 [details]
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=172447&action=review

> Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3548
> +    if (node()->hasTagName(MathMLNames::munderTag) || node()->hasTagName(MathMLNames::munderoverTag))

Do you need to null-check node() here?

> Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3563
> +    if (node()->hasTagName(MathMLNames::moverTag))

Do you need to null-check node() here?

> Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3593
> +    if (node()->hasTagName(MathMLNames::msubTag) || node()->hasTagName(MathMLNames::msubsupTag))

Do you need to null-check node() here?

> Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3608
> +    if (node()->hasTagName(MathMLNames::msupTag))

Do you need to null-check node() here?
Comment 11 chris fleizach 2012-11-13 15:30:19 PST
http://trac.webkit.org/changeset/134496