<?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>118096</bug_id>
          
          <creation_ts>2013-06-26 15:57:01 -0700</creation_ts>
          <short_desc>AX: Support reader media type for CSS-generated content overrides</short_desc>
          <delta_ts>2016-02-23 19:53:02 -0800</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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="James Craig">jcraig</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jcraig</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>903951</commentid>
    <comment_count>0</comment_count>
      <attachid>205532</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2013-06-26 15:57:01 -0700</bug_when>
    <thetext>Created attachment 205532
test case

Support reader media type for CSS-generated content overrides

* STEPS TO REPRODUCE
1. Open attached text case.

* RESULTS
VoiceOver speaks &quot;down point black pointer&quot; (OSX) or &quot;down pointing triangle&quot; (iOS) depending on what system you use.

Expected VoiceOver to not speak that character.

* REGRESSION
No

* NOTES
I originally thought this would be a simple string replacement, but it turns out to be a &quot;down pointing triangle&quot; unicode character in the CSS-generated content of the :before pseudo-element. It&apos;s actually a text character, so it&apos;s the text-to-speech (TTS) engine on the desktop (and VO on iOS) that&apos;s replacing this character with the dictionary string, &quot;downward pointing triangle.&quot; In most cases, this is what we&apos;d want, so I don&apos;t consider this a &quot;bug&quot; in VoiceOver or the TTS components.

.foo:before {
  float: right;
  content: &quot;\25BC&quot;; /* aka  ▼ */
  font-size: 9px;
  margin: 4px 0 0 4px;
  color: #878787;
}

This means there is no element on which to hang an aria-label or aria-hidden attribute, so there&apos;s currently no good resolution for this problem.  With image replacement techniques, CSS allows for a text fallback.

Example:
  content: url(arrow.png), &quot;&quot;; /* more or less equivalent to an element with an empty alt attr */

In theory this would prevent the image from being in the AX tree, because it&apos;s decorative and the semantics are already implicit (from the role of HTMLSelectElement) or explicit (via the aria-haspopup attribute).

However, since &quot;\25BC&quot; is already text, there is no point to attempting text fallback for text.
  content: &quot;\25BC&quot;, &quot;&quot;; /* this doesn&apos;t do anything other than display the original character */

WebKit will probably need to support the &quot;reader&quot; media type to remove the redundancy here, which would make the CSS look something like this:

.foo:before {
  float: right;
  content: &quot;\25BC&quot;; /* aka  ▼ */
  font-size: 9px;
  margin: 4px 0 0 4px;
  color: #878787;
}
@media reader {
  .foo:before {
    content: &quot;&quot;;
  }
}

Or even:
@media reader {
  .foo:before {
    display:none; /* equivalent to adding aria-hidden=&quot;true&quot; on the psuedo-element, if you could do that */
  }
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903953</commentid>
    <comment_count>1</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2013-06-26 15:57:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/12693314&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167647</commentid>
    <comment_count>2</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2016-02-23 19:53:02 -0800</bug_when>
    <thetext>Supplanted by CSS alt, etc. Closing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>205532</attachid>
            <date>2013-06-26 15:57:01 -0700</date>
            <delta_ts>2013-06-26 15:57:01 -0700</delta_ts>
            <desc>test case</desc>
            <filename>12693314.html</filename>
            <type>text/html</type>
            <size>342</size>
            <attacher name="James Craig">jcraig</attacher>
            
              <data encoding="base64">PHN0eWxlIHR5cGU9InRleHQvY3NzIj4Kc3BhbiB7CglkaXNwbGF5OmlubGluZS1ibG9jazsKfQpz
ZWxlY3QgewoJLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwoJYm9yZGVyOm5vbmU7CglkaXNwbGF5
OmlubGluZTsKfQpzcGFuOmJlZm9yZSB7CglmbG9hdDpyaWdodDsKCWNvbnRlbnQ6ICJcMjVCQyI7
Cglmb250LXNpemU6IDlweDsKCW1hcmdpbjogNHB4IDAgMCA0cHg7Cgljb2xvcjogIzg3ODc4NzsK
fQpAbWVkaWEgcmVhZGVyIHsKCXNwYW46YmVmb3JlIHsKCQljb250ZW50OiAiIjsKCX0KfQo8L3N0
eWxlPgo8c3Bhbj48c2VsZWN0PjxvcHRpb24+VGVzdDwvb3B0aW9uPjwvc2VsZWN0Pjwvc3Bhbj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>