<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - AX: VoiceOver does not correctly read square root with 2 children or more"
   href="https://bugs.webkit.org/show_bug.cgi?id=146452">146452</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>AX: VoiceOver does not correctly read square root with 2 children or more
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>528+ (Nightly build)
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Accessibility
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>fred.wang&#64;free.fr
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>webkit-bug-importer&#64;group.apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Testcase:
data:text/html,&lt;math&gt;&lt;msqrt&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mi&gt;y&lt;/mi&gt;&lt;/msqrt&gt;&lt;/math&gt;

Accessible tree exposed by Safari:
Role: AXGroup
Subrole: AXMathSquareRoot
MathRootRadicand: pointer to child &quot;x&quot;
accessibilityChildren: 3 items
  0 AXStaticText (radical symbol)
  1 AXMathIdentifier (x)
  2 AXMathIdentifier (y)

Accessible tree exposed by Firefox Nightly:
Role: AXGroup
Subrole: AXMathSquareRoot
MathRootRadicand: pointer to child &quot;x&quot;
accessibilityChildren: 2 items
  0 AXMathIdentifier (x)
  1 AXMathIdentifier (y)

Actual Result:
In both cases, VoiceOver reads &quot;square root of x&quot;.

Expect Result:
VoiceOver should read &quot;square root of xy&quot;.

It seems that VoiceOver uses the MathRootRadicand attribute in order to get the accessible child of AXMathSquareRoot to read but ignores the other siblings. Instead, it should use this attribute to determine the first child to read and then read the next siblings. Alternatively, WebKit could do as Firefox and only expose the relevant children (i.e. not the AXStaticText with the radical symbol). Then the MathRootRadicand attribute will no longer be necessary for AXMathSquareRoot and VoiceOver could just read the children of AXMathSquareRoot.

Note 1: &lt;msqrt&gt; can have any number of children while &lt;mroot&gt; always has two children (base, index). So while using MathRootRadicand / MathRootIndex attributes works well for AXMathRoot, this does not for AXMathSquareRoot.

Note 2: The equivalent markup with an explicit &lt;mrow&gt; is correclty read: &lt;math&gt;&lt;msqrt&gt;&lt;mrow&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mi&gt;y&lt;/mi&gt;&lt;/mrow&gt;&lt;/msqrt&gt;&lt;/math&gt;.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>