<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>127292</bug_id>
          
          <creation_ts>2014-01-20 08:18:11 -0800</creation_ts>
          <short_desc>AX: SVG &lt;desc&gt; element not presented by screen reader</short_desc>
          <delta_ts>2014-04-01 23:57:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>54357</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>120709</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>jcraig</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>969845</commentid>
    <comment_count>0</comment_count>
      <attachid>221660</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-01-20 08:18:11 -0800</bug_when>
    <thetext>Created attachment 221660
Example

&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
	&lt;desc&gt;A black circle.&lt;/desc&gt;
	&lt;circle cx=&quot;50&quot; cy=&quot;50&quot; r=&quot;50&quot;/&gt;
&lt;/svg&gt;

The desc element in the example above is ignored. SVGElement has a method called title() for scanning for &lt;title&gt; elements.

SVGDescElement has a method called description() that can be used.

Chris, James: What is the preferred way for AX to read the description?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969850</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-20 08:28:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/15858877&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969859</commentid>
    <comment_count>2</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-01-20 08:54:33 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; Created an attachment (id=221660) [details]
&gt; Example
&gt; 
&gt; &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
&gt;     &lt;desc&gt;A black circle.&lt;/desc&gt;
&gt;     &lt;circle cx=&quot;50&quot; cy=&quot;50&quot; r=&quot;50&quot;/&gt;
&gt; &lt;/svg&gt;
&gt; 
&gt; The desc element in the example above is ignored. SVGElement has a method called title() for scanning for &lt;title&gt; elements.
&gt; 
&gt; SVGDescElement has a method called description() that can be used.
&gt; 
&gt; Chris, James: What is the preferred way for AX to read the description?

I think this would probably end up being exposed in the accessibilityDescription() method (on the mac it would be AXDescription)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969875</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-01-20 09:19:00 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #0)
&gt; &gt; Created an attachment (id=221660) [details] [details]
&gt; &gt; Example
&gt; &gt; 
&gt; &gt; &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
&gt; &gt;     &lt;desc&gt;A black circle.&lt;/desc&gt;
&gt; &gt;     &lt;circle cx=&quot;50&quot; cy=&quot;50&quot; r=&quot;50&quot;/&gt;
&gt; &gt; &lt;/svg&gt;
&gt; &gt; 
&gt; &gt; The desc element in the example above is ignored. SVGElement has a method called title() for scanning for &lt;title&gt; elements.
&gt; &gt; 
&gt; &gt; SVGDescElement has a method called description() that can be used.
&gt; &gt; 
&gt; &gt; Chris, James: What is the preferred way for AX to read the description?
&gt; 
&gt; I think this would probably end up being exposed in the accessibilityDescription() method (on the mac it would be AXDescription)

Hm, there is a AXDescriptionList object that I could find. Do you mean

String AccessibilityNodeObject::accessibilityDescription() const

?

This one is currently using the title element instead of the desc element. This probably should not be the case.

The title attribute is more similar to the title attribute on &lt;a&gt; link tag I assume. Should it be relinked?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969877</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-01-20 09:20:19 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; Created an attachment (id=221660) [details] [details] [details]
&gt; &gt; &gt; Example
&gt; &gt; &gt; 
&gt; &gt; &gt; &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
&gt; &gt; &gt;     &lt;desc&gt;A black circle.&lt;/desc&gt;
&gt; &gt; &gt;     &lt;circle cx=&quot;50&quot; cy=&quot;50&quot; r=&quot;50&quot;/&gt;
&gt; &gt; &gt; &lt;/svg&gt;
&gt; &gt; &gt; 
&gt; &gt; &gt; The desc element in the example above is ignored. SVGElement has a method called title() for scanning for &lt;title&gt; elements.
&gt; &gt; &gt; 
&gt; &gt; &gt; SVGDescElement has a method called description() that can be used.
&gt; &gt; &gt; 
&gt; &gt; &gt; Chris, James: What is the preferred way for AX to read the description?
&gt; &gt; 
&gt; &gt; I think this would probably end up being exposed in the accessibilityDescription() method (on the mac it would be AXDescription)
&gt; 
&gt; Hm, there is a AXDescriptionList object that I could find. Do you mean
&gt; 
&gt; String AccessibilityNodeObject::accessibilityDescription() const
&gt; 
&gt; ?
&gt; 
&gt; This one is currently using the title element instead of the desc element. This probably should not be the case.
&gt; 
&gt; The title attribute is more similar to the title attribute on &lt;a&gt; link tag I assume. Should it be relinked?

In that case it sounds like &lt;title&gt; should go to helpText() and &lt;desc&gt; should go to accessibilityDescription</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969907</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-01-20 10:23:55 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; &gt; Created an attachment (id=221660) [details] [details] [details] [details]
&gt; &gt; &gt; &gt; Example
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
&gt; &gt; &gt; &gt;     &lt;desc&gt;A black circle.&lt;/desc&gt;
&gt; &gt; &gt; &gt;     &lt;circle cx=&quot;50&quot; cy=&quot;50&quot; r=&quot;50&quot;/&gt;
&gt; &gt; &gt; &gt; &lt;/svg&gt;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; The desc element in the example above is ignored. SVGElement has a method called title() for scanning for &lt;title&gt; elements.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; SVGDescElement has a method called description() that can be used.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Chris, James: What is the preferred way for AX to read the description?
&gt; &gt; &gt; 
&gt; &gt; &gt; I think this would probably end up being exposed in the accessibilityDescription() method (on the mac it would be AXDescription)
&gt; &gt; 
&gt; &gt; Hm, there is a AXDescriptionList object that I could find. Do you mean
&gt; &gt; 
&gt; &gt; String AccessibilityNodeObject::accessibilityDescription() const
&gt; &gt; 
&gt; &gt; ?
&gt; &gt; 
&gt; &gt; This one is currently using the title element instead of the desc element. This probably should not be the case.
&gt; &gt; 
&gt; &gt; The title attribute is more similar to the title attribute on &lt;a&gt; link tag I assume. Should it be relinked?
&gt; 
&gt; In that case it sounds like &lt;title&gt; should go to helpText() and &lt;desc&gt; should go to accessibilityDescription


Just to confirm... helpText() would still be read by the screen reader?

So:

&lt;svg&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;desc&gt;A long description&lt;/desc&gt;
&lt;/svg&gt;

would result in reading both, the title and the description as it should be done for the example above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969915</commentid>
    <comment_count>6</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-01-20 10:45:03 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; &gt; &gt; Created an attachment (id=221660) [details] [details] [details] [details] [details]
&gt; &gt; &gt; &gt; &gt; Example
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
&gt; &gt; &gt; &gt; &gt;     &lt;desc&gt;A black circle.&lt;/desc&gt;
&gt; &gt; &gt; &gt; &gt;     &lt;circle cx=&quot;50&quot; cy=&quot;50&quot; r=&quot;50&quot;/&gt;
&gt; &gt; &gt; &gt; &gt; &lt;/svg&gt;
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; The desc element in the example above is ignored. SVGElement has a method called title() for scanning for &lt;title&gt; elements.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; SVGDescElement has a method called description() that can be used.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Chris, James: What is the preferred way for AX to read the description?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I think this would probably end up being exposed in the accessibilityDescription() method (on the mac it would be AXDescription)
&gt; &gt; &gt; 
&gt; &gt; &gt; Hm, there is a AXDescriptionList object that I could find. Do you mean
&gt; &gt; &gt; 
&gt; &gt; &gt; String AccessibilityNodeObject::accessibilityDescription() const
&gt; &gt; &gt; 
&gt; &gt; &gt; ?
&gt; &gt; &gt; 
&gt; &gt; &gt; This one is currently using the title element instead of the desc element. This probably should not be the case.
&gt; &gt; &gt; 
&gt; &gt; &gt; The title attribute is more similar to the title attribute on &lt;a&gt; link tag I assume. Should it be relinked?
&gt; &gt; 
&gt; &gt; In that case it sounds like &lt;title&gt; should go to helpText() and &lt;desc&gt; should go to accessibilityDescription
&gt; 
&gt; 
&gt; Just to confirm... helpText() would still be read by the screen reader?
&gt; 
&gt; So:
&gt; 
&gt; &lt;svg&gt;
&gt;     &lt;title&gt;Title&lt;/title&gt;
&gt;     &lt;desc&gt;A long description&lt;/desc&gt;
&gt; &lt;/svg&gt;
&gt; 
&gt; would result in reading both, the title and the description as it should be done for the example above?

Yes. Generally, the user would hear &quot;A long description&quot; immediately and then followed by a pause and hear &quot;Title&quot; if we follow these guidelines we&apos;re talking about

It would be similar to

&lt;a href=&quot;#&quot; aria-label=&quot;LABEL&quot; title=&quot;TITLE&quot;&gt;

You&apos;d hear &quot;LABEL&quot; pause &quot;TITLE&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969923</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-01-20 11:03:53 -0800</bug_when>
    <thetext>
&gt; &gt; &lt;svg&gt;
&gt; &gt;     &lt;title&gt;Title&lt;/title&gt;
&gt; &gt;     &lt;desc&gt;A long description&lt;/desc&gt;
&gt; &gt; &lt;/svg&gt;
&gt; &gt; 
&gt; &gt; would result in reading both, the title and the description as it should be done for the example above?
&gt; 
&gt; Yes. Generally, the user would hear &quot;A long description&quot; immediately and then followed by a pause and hear &quot;Title&quot; if we follow these guidelines we&apos;re talking about
&gt; 
&gt; It would be similar to
&gt; 
&gt; &lt;a href=&quot;#&quot; aria-label=&quot;LABEL&quot; title=&quot;TITLE&quot;&gt;
&gt; 
&gt; You&apos;d hear &quot;LABEL&quot; pause &quot;TITLE&quot;

Good that I asked again. I don&apos;t think that the order is correct: http://www.w3.org/TR/2000/NOTE-SVG-access-20000807/#Structured

Should be first title then description. title is like a header or naming. Is there anything else that matches the description?

http://blog.paciellogroup.com/2013/12/using-aria-enhance-svg-accessibility/

Suggests

title = accessible name
desc = accessible description</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996604</commentid>
    <comment_count>8</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2014-04-01 23:50:40 -0700</bug_when>
    <thetext>Isn&apos;t this a dupe of bug 54357?

*** This bug has been marked as a duplicate of bug 54357 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>221660</attachid>
            <date>2014-01-20 08:18:11 -0800</date>
            <delta_ts>2014-01-20 08:18:11 -0800</delta_ts>
            <desc>Example</desc>
            <filename>a11y-2.svg</filename>
            <type>image/svg+xml</type>
            <size>113</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoJPGRlc2M+QSBibGFjayBj
aXJjbGUuPC9kZXNjPgoJPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4KPC9zdmc+Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>