[Webkit-unassigned] [Bug 118096] New: Support reader media type for CSS-generated content overrides

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jun 26 15:55:05 PDT 2013


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

           Summary: Support reader media type for CSS-generated content
                    overrides
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: Accessibility
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: james at cookiecrook.com


Created an attachment (id=205532)
 --> (https://bugs.webkit.org/attachment.cgi?id=205532&action=review)
test case

Support reader media type for CSS-generated content overrides

* STEPS TO REPRODUCE
1. Open attached text case.

* RESULTS
VoiceOver speaks "down point black pointer" (OSX) or "down pointing triangle" (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 "down pointing triangle" unicode character in the CSS-generated content of the :before pseudo-element. It's actually a text character, so it's the text-to-speech (TTS) engine on the desktop (and VO on iOS) that's replacing this character with the dictionary string, "downward pointing triangle." In most cases, this is what we'd want, so I don't consider this a "bug" in VoiceOver or the TTS components.

.foo:before {
  float: right;
  content: "\25BC"; /* 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's currently no good resolution for this problem.  With image replacement techniques, CSS allows for a text fallback.

Example:
  content: url(arrow.png), ""; /* 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's decorative and the semantics are already implicit (from the role of HTMLSelectElement) or explicit (via the aria-haspopup attribute).

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

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

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

Or even:
@media reader {
  .foo:before {
    display:none; /* equivalent to adding aria-hidden="true" on the psuedo-element, if you could do that */
  }
}

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list