Archive index

A11y Slackers
Gitter Channel Archive 21st of July 2015

What fresh hell is THIS now? - Patrick Lauke
  1. zakim-robot
    Jul 21 03:01
    [Francis Storr, a11y] @Karl Groves: hope the vacation was good. Whilst you were off, I ran some tests on my company’s site and had a question about tenon’s reporting on URL structure (@Steve Faulkner mentioned it on twitter a few days ago). Instead of repeating the whole thing here, @dylanb and I talked through it in #angular, should you be interested.
  2. zakim-robot
    Jul 21 03:04
    [Karl Groves, a11y] Thanks. I happen to have a different opinion than @dylanb. I’ll take a closer look at that specific test, because on a pragmatic basis user impact will be low, but it is still an issue, IMO.
  3. zakim-robot
    Jul 21 03:07
    [Francis Storr, a11y] Okay, thanks. Any feedback would be very useful.
  4. zakim-robot
    Jul 21 03:12

    [Karl Groves, a11y] Given the following:

    <a href=“#”>foo</a> this link either a) does (supposedly) nothing at all or b) relies 100% on JavaScript to function.

    That pattern begs the question: Why? Now, if this is intended to behave like a button then why not use a button? Or, at the very least, why not have a role of button?

    Same thing goes for any other possible usages with JS. If it is a menu item, tab panel, custom checkbox, etc. then it should have the appropriate role applied.

  5. zakim-robot
    Jul 21 03:19

    [Karl Groves, a11y] The response from @dylanb wholly ignores the remainder of RFC1630 which says

    The hash ("#", ASCII 23 hex) character is reserved as a delimiter to separate the URI of an object from a fragment identifier .

    Later the RFC says (which @dylanb cites)

    A void fragment-id with or without the hash sign means that the URL refers to the whole object.

    And later says

    There is no implication that a fragment identifier refers to anything which can be extracted as an object in its own right. It may, for example, refer to an indivisible point within an object.

    In other words, using this pattern provides for no guarantee that the hypertext reference points to anything. In practice it might actually point to the entire window (or body). This has, historically at least, been a significant problem for users unless focus is properly managed (which it often isn’t).

    I don’t have recent enough data to speak on what most modern browsers do.

  6. zakim-robot
    Jul 21 03:19
    [Karl Groves, a11y] That said, adding the appropriate role and managing focus is a good mitigation for the problem.
  7. stevefaulkner
    Jul 21 07:04
    @KarlGroves, as mentioned to you previously, it would be useful for Tenon to have a feature that allows filtering/suppression of issues
  8. stevefaulkner
    Jul 21 07:22
    Note: Screan Readers announce CSS before/after content https://twitter.com/stevefaulkner/status/623376896751980544
  9. stevefaulkner
    Jul 21 08:11
    View of accessibility tree in Firefox with pipe characters present as #text https://twitter.com/stevefaulkner/status/623387876449984512
  10. stevefaulkner
    10:13
    Nascent Proposal: keyboard navigation of headings and HTML5 'landmark' elements http://discourse.wicg.io/t/nascent-proposal-keyboard-navigation-of-headings-and-html5-landmark-elements/948?u=stevef
  11. stevefaulkner
    10:38
    Note: All discussion is logged and publicly archived daily http://w3c.github.io/a11ySlackers/archives/index.html
  12. zakim-robot
    12:41
    [Katy Moe, a11y] Does anyone know of an accessible real-time chat web app that makes good use of live regions?
  13. zakim-robot
    13:02
    [Michiel Bijl, a11y] Native or web?
  14. zakim-robot
    13:02
    [Katy Moe, a11y] web @Michiel Bijl
  15. zakim-robot
    13:03
    [Michiel Bijl, a11y] Then no.
  16. stevefaulkner
    13:06
  17. zakim-robot
    13:09
    [Katy Moe, a11y] thanks Steve - that’s interesting, it has a couple of spans way off the page with aria-live=“polite” and role=“alert” and sticks the new messages in them
  18. zakim-robot
    13:11
    [Katy Moe, a11y] I was approaching the problem from a different direction, trying to give the chat window a role of log and getting it to announce additions. The problem is, my app is in react (redux) and it juggles the DOM nodes around constantly, so “additions” doesn’t have much meaning
  19. zakim-robot
    13:11
    [Katy Moe, a11y] In fact, I think it’s worth asking this in #react
  20. stevefaulkner
    13:13
    @kmoe @karlgroves also has this http://chat.karlgroves-sandbox.com/ demo , but unsure of status
  21. zakim-robot
    13:16
    [Katy Moe, a11y] this works really well - thanks! this is exactly how I want mine to work
  22. stevefaulkner
    13:17
    :+1:
  23. zakim-robot
    13:18
    [Katy Moe, a11y] @Karl Groves we’re both using Firebase :simple_smile:
  24. zakim-robot
    13:23

    [Karl Groves, a11y] > @Karl Groves, as mentioned to you previously, it would be useful for Tenon to have a feature that allows filtering/suppression of issues

    @Steve Faulkner: Consumers of the API are encouraged to leverage the many API request parameters so that test results suit their needs. Additionally, if there are specific testIDs that consumers disagree with, I’d rather hear about it so we can determine if modifications are necessary. (See http://tenon.io/documentation/understanding-issue-reports.php heading starting “What do I do if…”

    Also, consumers can choose to filter at runtime. In fact, Ed Gauci’s Grunt & Gulp plugins do exactly this. He offers options for which tests to ignore.

  25. zakim-robot
    13:26

    [Karl Groves, a11y] @Katy Moe: I love Firebase! One important caution: I’ve found that > 1 live region is a pain in the ass. @dylanb and/ or @Dirk Ginader might be able to comment more fully because I recall a similar conversation, but basically if > 1 live regions have the same assertiveness the announcements aren’t very reliable, esp. in VoiceOver.

    My preferred workaround is to use a “notifier”, which is a single hidden live region where all announcements are made from.

  26. zakim-robot
    13:27

    [Karl Groves, a11y] FWIW I’ve written a jQuery live regions plugin: https://github.com/karlgroves/jquery-live-regions

    Working in a Vanilla JS version one of these days

  27. zakim-robot
    13:27
    [dylanb, a11y] @Katy Moe: does your application have to work on iOS or on older IE?
  28. zakim-robot
    13:28
    [Katy Moe, a11y] @dylanb: it’s just a demo, and it’s for something else entirely (the Web Crypto API), so it’s only designed for Chrome
  29. zakim-robot
    13:28
    [Katy Moe, a11y] @Karl Groves: the notifier pattern does sounds useful
  30. zakim-robot
    13:29
  31. zakim-robot
    13:29
    [dylanb, a11y] @Katy Moe: here is an Angular implementation that works everywhere, reliably https://github.com/dequelabs/ngA11y/blob/master/src/nga11yannounce.js
  32. zakim-robot
    13:30
    [Katy Moe, a11y] nice, thanks both
  33. zakim-robot
    13:30
    [Katy Moe, a11y] the react problem interests me - I wonder if anyone’s solved it
  34. zakim-robot
    13:30
    [dylanb, a11y] Here is a jQuery module example that works reasonably well https://github.com/dylanb/a11yfy/blob/master/a11yfy/jquery.a11yfy.core.js#L461
  35. zakim-robot
    13:30
    [dylanb, a11y] and I think @Karl Groves implementation is equivalent to the second one
  36. zakim-robot
    13:31
    [Karl Groves, a11y] @Katy Moe sorry, I’m late to the discussion. What do you mean by React problem?
  37. zakim-robot
    13:31
    [Katy Moe, a11y] @Karl Groves: I need to do more experimentation, but I think that the way react adds and removes nodes from the DOM constantly may be messing with the aria-relevant=“additions” behaviour
  38. zakim-robot
    13:31
    [Karl Groves, a11y] @Katy Moe
  39. zakim-robot
    13:32
    [dylanb, a11y] The Angular implementation might solve some issues that React introduces because it hides messages when appending new ones
  40. zakim-robot
    13:32
    [Karl Groves, a11y] See ya’ll. Boarding plane
  41. zakim-robot
    13:32
    [Katy Moe, a11y] @Karl Groves: thanks! I’ll try to make a test case soon
  42. zakim-robot
    13:32
    [dylanb, a11y] safe travels @Karl Groves
  43. zakim-robot
    13:33
    [dylanb, a11y] which solves some problems in older IE (where additions is ignored)
  44. zakim-robot
    13:33
    [Katy Moe, a11y] ah, good point
  45. zakim-robot
    13:34
    [dylanb, a11y] but also pretty much ensures that when you delete a message, it is display:none first
  46. zakim-robot
    13:34
    [dylanb, a11y] so deletions get ignored
  47. zakim-robot
    13:34
    [Katy Moe, a11y] clever!
  48. zakim-robot
    13:35
    [dylanb, a11y] by switching between multiple regions, it fixes a bug in OS X
  49. zakim-robot
    13:35
    [dylanb, a11y] where if you have duplicate messages needing to be announced immediately after one another (e.g. invalid form fields), that they still get announced
  50. zakim-robot
    13:36
    [dylanb, a11y] or if you have an irritating chat buddy who keeps saying the same thing :simple_smile:
  51. zakim-robot
    13:36
    [dylanb, a11y] like "why are you ignoring me?"
  52. MichielBijl
    13:46
    Does anyone have resources for iOS a11y testing? This is the first time for me, so I'm not really sure how to go about it.
  53. MichielBijl
    13:46
    Some pointers would be appreciated, too.
  54. MichielBijl
    13:47
    I have some experience with VoiceOver on iOS, but would like to now what to look for/common errors or hurdles.
  55. zakim-robot
    13:50
  56. zakim-robot
    13:52
    [Michiel Bijl, a11y] Thank you!
  57. stevefaulkner
    13:56
    @MichielBijl reminded me of https://youtu.be/StI0iIufJzk
  58. MichielBijl
    13:57
    Those are some clear signs ;)
  59. stevefaulkner
    13:58
    "I guess no business for southwest..." :-)
  60. stevefaulkner
    14:56
    @karlgroves I was referring to the web UI as I am a simple user
  61. zakim-robot
    15:04
    [Michiel Bijl, a11y] Trying out postcss; good bye sass.
  62. zakim-robot
    15:20
    [Nadav Spiegelman, a11y] I use them together
  63. zakim-robot
    15:24
    [Michiel Bijl, a11y] I like to use the CSS spec now. I use sass for the same goal, but only use nesting and vars.
  64. zakim-robot
    15:24
    [Michiel Bijl, a11y] So I think—for me anyway—it’s better to get familiar with the new CSS syntax instead of sticking with Sass.
  65. zakim-robot
    15:27
    [Nadav Spiegelman, a11y] Are you using cssnext?
  66. zakim-robot
    15:28
    [Michiel Bijl, a11y] No, postcss
  67. zakim-robot
    15:29
    [Michiel Bijl, a11y] Those are the plugins I use.
  68. zakim-robot
    15:30
    [Michiel Bijl, a11y] Oh, and autoprefixer
  69. zakim-robot
    15:30
    [dylanb, a11y] postcss rocks
  70. zakim-robot
    15:31
    [Michiel Bijl, a11y] Yes :smile:
  71. zakim-robot
    15:33
    [dylanb, a11y] good video intro https://www.youtube.com/watch?v=1yUFTrAxTzg
  72. zakim-robot
    15:33
    [Nadav Spiegelman, a11y] cssnext uses PostCSS, that’s why I was asking
  73. zakim-robot
    15:35
    [Michiel Bijl, a11y] Oh really? So they have a sort of predefined list with postcss plugins?
  74. zakim-robot
    15:35
    [Michiel Bijl, a11y] Thanks @dylanb
  75. zakim-robot
    15:35
    [Nadav Spiegelman, a11y] http://cssnext.io/
  76. zakim-robot
    15:36
    [Nadav Spiegelman, a11y] It aims to transpile future syntax
  77. zakim-robot
    15:38
    [Michiel Bijl, a11y] cssnext looks interesting.
  78. zakim-robot
    15:42
    [Nadav Spiegelman, a11y] I haven’t used it — not interested in switching from Sass right now — but it looks cool.
  79. zakim-robot
    15:45
    [Justin Stockton, a11y] Great. Just when I finally get really good with Sass I learn about PostCSS
  80. zakim-robot
    15:45
    [Michiel Bijl, a11y] Depends on what you prefer I guess.
  81. zakim-robot
    15:46
    [Justin Stockton, a11y] I adopted Sass late because I didn’t like its dependence on gems. now that libSass almost has feature parity with the gems I made the jump
  82. zakim-robot
    15:48
    [Michiel Bijl, a11y] Do use that much in sass?
  83. zakim-robot
    15:51
    [Justin Stockton, a11y] Just the core functionality really. Developed a few mixin libs for some projects but that’s about it.
  84. zakim-robot
    15:56
    [Jordan Scales, a11y] postcss is such a neat concept. tota11y uses it to automatically append !important to all of its styles (no I’m not kidding :wink: ) https://github.com/Khan/tota11y/blob/c3a58c0874422e2e56fa0fa7a104f1d51fc57ff4/webpack.config.js#L7-14
  85. zakim-robot
    15:57
    [Jordan Scales, a11y] but I’m hopefully going to change everything to inline styles (which is the even-newer hotness I guess)
  86. zakim-robot
    15:58
    [Michiel Bijl, a11y] inline styles?! :r
  87. zakim-robot
    15:59
    [Michiel Bijl, a11y] A developer here did a talk about HTML in JS :confused:
  88. zakim-robot
    15:59
    [Jordan Scales, a11y] @Michiel Bijl yep! there was another great talk at cssconf about it (https://www.youtube.com/watch?v=NoaxsCi13yQ), shortly after andrei’s. pretty funny to see folks campaigning for SASS, then folks saying “you’re wrong, use postcss!” THEN folks saying “you’re all wrong, style with JavaScript!”
  89. zakim-robot
    15:59
    [Michiel Bijl, a11y] I feel like I’ve lost touch with development :disappointed:
  90. zakim-robot
    16:00
    [Jordan Scales, a11y] hahah the past 6 months or so have been pretty crazy! things will settle and the “right” stuff will come out victorious (maybe)
  91. zakim-robot
    16:00
    [Michiel Bijl, a11y] I stopped that video after a couple of minutes…
  92. zakim-robot
    16:04
    [dylanb, a11y] @Jordan Scales you should think about using shadow DOM
  93. zakim-robot
    16:04
    [dylanb, a11y] and falling back to inlines where it does not exist
  94. zakim-robot
    16:06
    [Jordan Scales, a11y] @dylanb I originally wanted to do shadow dom but browser support scared me (combined with the fact that I just don’t know much about it) :disappointed: falling back to inline styles is a great idea
  95. schalkneethling
    16:08
    simple question, not always so simple to answer ;p should form labels always have a for attribute
  96. schalkneethling
    16:08
    I prefer that but, a lot of folks tend to feel that if it wraps the element, the implicit grouping is good enough
  97. schalkneethling
    16:08
    thoughts?
  98. zakim-robot
    16:08
    [dylanb, a11y] implicit is good enough
  99. MichielBijl
    16:08
    @schalkneethling: not need if the input is within the label
  100. MichielBijl
    16:08
    needed*
  101. MichielBijl
    16:09
    Only IE6 and lower can't handle that.
  102. schalkneethling
    16:09
    alrighty then, case closed ;) Thanks
  103. MichielBijl
    16:11
    Sorry, pre IE 8 doesn't expose accessible name for the label if it doesn't have a for attribute.
  104. MichielBijl
    16:12
  105. schalkneethling
    16:12
    so <= IE7
  106. MichielBijl
    16:13
    Labels aren't clickable in IE6. Accessible name not exposed in IE7 and lower; yes.
  107. schalkneethling
    16:13
    Thanks @MichielBijl
  108. MichielBijl
    16:13
    No problem @schalkneethling :)
  109. stevefaulkner
    16:44
    Hey @schalkneethling :smile:
  110. zakim-robot
    17:02
    [Andrea Skeries, a11y] Yesterday marked the 25th anniversary of the Americans with Disabilities Act. The White House had some statements they released in a video. Too bad they didn't edit the auto captions from YouTube. I noticed a few mistakes that really change the meaning of what the President is saying. https://www.whitehouse.gov/photos-and-video/video/2015/07/20/president-speaks-25th-anniversary-americans-disabilities-act
  111. zakim-robot
    17:05
    [Andrea Skeries, a11y] Learn how to edit the YouTube auto captions for best accuracy and accessibility: https://support.google.com/youtube/answer/2734796
  112. zakim-robot
    17:26
    [heidi valles, a11y] Speaking of YouTube, is there yet a way to force HTML5 player embeds or does it still rely on the user to choose the html5 in their prefs?
  113. zakim-robot
    17:27
    [heidi valles, a11y] Does adding ?html5=1 to the iframe url really do the trick?
  114. rodneyrehm
    17:34
    the problem with that is, <fieldset disabled> inherits the state onto its form element children, <div aria-disabled=“true"> does not
  115. stevefaulkner
    18:05
    @rodneyrehm what is the browser support like for disabled on a fieldset?
  116. rodneyrehm
    18:05
    supported by Trident, Edge, Gecko. Faulty in Blink and WebKit
  117. rodneyrehm
    18:09
    ok, that wasn’t entirely correct, @stevefaulkner, Blink and WebKit support inheriting the disabled state onto descendant form elements just fine. The problem here is with <fieldset disabled tabindex=“0”>, where WebKit and Blink don’t realize that disabled supersedes the tabindex.
  118. rodneyrehm
    18:12
  119. rodneyrehm
    18:13
    (that’s part of the research I’m writing up in the book I gave you access to last week)
  120. zakim-robot
    18:40
    [Marcy Sutton, a11y] ^^ super interesting
  121. zakim-robot
    18:42
    [Marcy Sutton, a11y] disabled on fieldset and native inputs has magical powers….in the Angular world of custom controls I had to explain over and over and over that disabled didn’t actually disable anything. One place where ng-disabled and ngAria helped quite a bit, as it would spit out aria-disabled as well. Sometimes a tad verbose, but low-risk at least.
  122. rodneyrehm
    18:44
    “disabled doesn’t actually disable anything”, what do you mean by that, Marcy?
  123. zakim-robot
    18:44
    [Marcy Sutton, a11y] I edited it… I meant to say that it wouldn’t disable custom HTML elements, which are prevalent in JS frameworks and web components
  124. rodneyrehm
    18:45
    ah, yes, one of the issues we tried talking about in the Web Components Accessibility Breakout at EdgeConf the other week
  125. rodneyrehm
    18:48
    that said, it would be “easy enough” to add the disabled property and attribute to any element, to have the same external API for the appropriate internal operations: set aria-disabled, pointer-events:none, tabindex=“-1”
  126. zakim-robot
    18:48

    [Marcy Sutton, a11y] Everyone wants to use disabled and have it inherit like the native version. Here’s an example:

    <fieldset disabled>
        <md-switch></md-switch>
    </fieldset>

    Obviously, using disabled on a custom element’s ancestor won’t disable it. Yet, people expect it will. We tell them to use ng-disabled in Angular Material because we’re packaging it with ngAria, which will add aria-disabled. But we have to jump through hoops to make sure custom controls inherit as well. It also relies on JS to do a lot. It’s a mess.

  127. zakim-robot
    18:49
    [Alice Boxhall, a11y] @Marcy Sutton: What would a good solution look lke here, do you think?
  128. zakim-robot
    18:49
    [Marcy Sutton, a11y] Best case: browsers support disabling on custom controls, and make them inherit.
  129. rodneyrehm
    18:50
    +1
  130. zakim-robot
    18:51
    [Alice Boxhall, a11y] How would that work?
  131. zakim-robot
    18:52
    [Alice Boxhall, a11y] As in, how would you enforce it on the custom control?
  132. rodneyrehm
    18:54
    what do you mean by "enforce it on the custom control”? Wouldn’t “allowing the custom control to react” be the first step?
  133. zakim-robot
    18:54
    [Marcy Sutton, a11y] I suppose it depends on the element whether it should become disabled from the keyboard, but if it has tabindex on it, that might be a good hook. I’ll have to think this through some more…I just recognize it as a pain point that I didn’t address before moving away from full-time JS framework development
  134. zakim-robot
    18:56
    [Marcy Sutton, a11y] Here’s a little demo I use to check what native inputs do when disabled/focused: http://codepen.io/marcysutton/pen/GgxboO
  135. zakim-robot
    18:59
    [Alice Boxhall, a11y] @rodneyrehm So there'd be some kind of "descendant attribute changed" callback?
  136. zakim-robot
    18:59
    [Alice Boxhall, a11y] I'm just wondering how this should actually work in practice
  137. zakim-robot
    18:59
    [Alice Boxhall, a11y] "inheriting descendant attribute changed"
  138. zakim-robot
    19:00
    [Marcy Sutton, a11y] That sounds accurate, so that a DOM subtree can update if its parent’s disabled state changes
  139. zakim-robot
    19:00
    [Alice Boxhall, a11y] Or even disable focus and all event handlers on anything in a disabled sub-tree?
  140. zakim-robot
    19:01
    [Marcy Sutton, a11y] it would make it a LOT simpler to be able to use disabled for everything instead of disabled and aria-disabled
  141. zakim-robot
    19:01
    [Alice Boxhall, a11y] totally agree
  142. zakim-robot
    19:01
    [Marcy Sutton, a11y] +1 ooh love that idea
  143. zakim-robot
    19:03
    [Alice Boxhall, a11y] Were there any other attributes that you wish inherited?
  144. zakim-robot
    19:03
    [Alice Boxhall, a11y] I'm not sure exactly what disabled does in practice tbh
  145. zakim-robot
    19:03
    [Alice Boxhall, a11y] I keep getting it confused with inert and forgetting where the boundaries are
  146. zakim-robot
    19:05
    [Marcy Sutton, a11y] That one is a special beast. I can’t think of any others that have that clear of a use case.
  147. zakim-robot
    19:07
    [Marcy Sutton, a11y] It would be awesome to be able to override aria-hidden on a child node, but I don’t even think that would be possible. You’d have to somehow keep a clear line up the DOM tree.
  148. zakim-robot
    19:09
    [Alice Boxhall, a11y] you mean for inert?
  149. zakim-robot
    19:11
    [Marcy Sutton, a11y] Sorry- I meant disabled is a beast.
  150. zakim-robot
    19:13
    [Alice Boxhall, a11y] Gotcha
  151. rodneyrehm
    19:14
    isn’t “inert” part of “disabled”? as in, you cannot interact with disabled elements at all?
  152. zakim-robot
    19:15
    [Alice Boxhall, a11y] Yeah I get confused which is which
  153. rodneyrehm
    19:16
    Hey, you guys are the experts, I just know enough to be dangerous ;)
  154. zakim-robot
    19:16
    [Alice Boxhall, a11y] Perhaps disabled could be considered a special case of inert
  155. zakim-robot
    19:17
    [Alice Boxhall, a11y] "A form control that is disabled must prevent any click events that are queued on the user interaction task source from being dispatched on the element."
  156. stevefaulkner
    19:18
    Hey @rodneyrehm you were at edge... Really sorry didn't realise we had met, my memory is atrocious
  157. zakim-robot
    19:18
    [Alice Boxhall, a11y] But disabled doesn't generally inherit - only for <fieldset>?
  158. rodneyrehm
    19:18
    @stevefaulkner no worries, I didn’t make an effort to be remembered ;)
  159. rodneyrehm
    19:19
    as far as I know, only <fieldset> can contain interactive content - so it is the only element inheriting from makes any sense
  160. zakim-robot
    19:19
    [dylanb, a11y] <form>?
  161. rodneyrehm
    19:20
    can a form be disabled?
  162. zakim-robot
    19:21
    [dylanb, a11y] not today it cannot
  163. zakim-robot
    19:21
    [dylanb, a11y] hey, but while we are dreaming....
  164. rodneyrehm
    19:21
  165. stevefaulkner
    19:21
    Btw I did a quick check earlier for disabled in IE11 it worked for checkbox but didn't stop me entering characters into a type=text (although field was greyed out o_O
  166. zakim-robot
    19:21
    [Alice Boxhall, a11y] @stevefaulkner weirrrd
  167. rodneyrehm
    19:21
    that’s a new kind of weird
  168. zakim-robot
    19:21
    [dylanb, a11y] @Steve Faulkner: disabled is weird
  169. stevefaulkner
    19:22
    Yeah need to do more checking...
  170. zakim-robot
    19:22
    [dylanb, a11y] its so weird, I don't think it gets seriously used
  171. zakim-robot
    19:22
    [Marcy Sutton, a11y] Wat
  172. rodneyrehm
    19:22
    its so weird, I named by “inert” function “disable"
  173. zakim-robot
    19:22
    [Marcy Sutton, a11y] And here I am thinking forms can even be disabled
  174. rodneyrehm
    19:23
    (mostly because I don’t know what I’m doing…)
  175. stevefaulkner
    19:23
    @dylanb you mean on fieldset or on controls?
  176. zakim-robot
    19:23
    [dylanb, a11y] dylanb thinks we need some testing
  177. zakim-robot
    19:24
    [dylanb, a11y] @Steve Faulkner: I am working from a very rusty distant memory here, so cut me some slack, but I recall disabled on buttons and text fields not really working the way I expected them to
  178. zakim-robot
    19:25
    [dylanb, a11y] at which point I (╯°□°)╯︵ ┻━┻
  179. rodneyrehm
    19:25
    while in “rusty memory” mode: aren’t disabled form elements not POSTed to the form’s action?
  180. zakim-robot
    19:25
    [dylanb, a11y] and used jQuery
  181. zakim-robot
    19:27
    [dylanb, a11y] alt for the emojis: I tossed my toys out of the pram (actually, threw over the table, but...)
  182. stevefaulkner
    19:30
    Here is a test page with disabled set on all form controls stevefaulkner.github.io/html-mapping-tests/browser-tests/disabled-elements.html
  183. rodneyrehm
    19:31
    except for the reset button, @stevefaulkner ?
  184. rodneyrehm
    19:31
    there’s no way to interact with the elements except for using JS in Firefox and Chrome… pretty much as advertised, no?
  185. zakim-robot
    19:32
    [dylanb, a11y] these are all looking good in FF and Chrome
  186. zakim-robot
    19:32
    [dylanb, a11y] on Windows
  187. rodneyrehm
    19:32
    ha, you can resized disabled <textarea>s (Gecko, Blink)
  188. rodneyrehm
    19:32
    (on Mac)
  189. zakim-robot
    19:39
    [dylanb, a11y] steve, can you add <input type="button"/> and image and submit?
  190. stevefaulkner
    19:50
    @dylanb submit is already there, have added button and image
  191. stevefaulkner
    19:54
    added a disabled fieldset for good measure ;-)
  192. zakim-robot
    19:56
    [dylanb, a11y] @Steve Faulkner: not sure if you can see this over in gitter land, but I just gave you a taco
  193. rodneyrehm
    19:57
    no taco visible here
  194. zakim-robot
    19:57
    [dylanb, a11y] btw - for those versed in German, "gitter" means "bars" as in "bars on windows"
  195. rodneyrehm
    19:57
    I’m German and I’ve never heard “gitter” being used that way
  196. rodneyrehm
    19:58
    ah, bars, not the ones you get a drink in :D
  197. rodneyrehm @rodneyrehm should read before replying, sorry
  198. stevefaulkner
    19:58
    @dylanb yum!
  199. rodneyrehm
    19:59
    I’d translate “gitter” to “mesh"
  200. rodneyrehm
    20:00
    “hinter gittern” -> "behind bars"
  201. stevefaulkner
    20:01
  202. stevefaulkner
    20:17
    @rodneyrehm so in IE when in the editor view http://codepen.io/stevef/pen/VLGbOK the input can be edited, but when in debug view it acts as it should http://s.codepen.io/stevef/debug/VLGbOK?
  203. zakim-robot
    20:26
    [Michiel Bijl, a11y] Wait, there are browsers that don’t support disabled?
  204. zakim-robot
    20:26
    [Michiel Bijl, a11y] Michiel Bijl freaks and starts to edit projects
  205. zakim-robot
    20:26
    [robdel12, a11y] Android browser 4.3 and lower doesn’t
  206. zakim-robot
    20:27
    [robdel12, a11y] 5.1 and lower of safari
  207. zakim-robot
    20:27
    [robdel12, a11y] and really early versions of FF
  208. zakim-robot
    20:27
    [robdel12, a11y] :stuck_out_tongue:
  209. zakim-robot
    20:27
    [Michiel Bijl, a11y] Do they support readonly?
  210. zakim-robot
    20:27
    [robdel12, a11y] I’m not sure
  211. zakim-robot
    20:27
    [Michiel Bijl, a11y] And IE11 apparently.
  212. zakim-robot
    20:27
  213. zakim-robot
    20:28
    [robdel12, a11y] OH, I am now just grabbing the earlier convo. (just joined!)
  214. zakim-robot
    20:28
    [robdel12, a11y] Yea field sets and disabled is a buggy thing in IE I guess
  215. zakim-robot
    20:28
    [Michiel Bijl, a11y] Oh it’s only a problem when it’s on a fieldset (missed a bit I guess)
  216. zakim-robot
    20:29
    [robdel12, a11y] >Text inputs that are descendants of a disabled fieldset appear disabled but the user can still interact with them. See IE bug #962368
  217. zakim-robot
    20:29
    [Michiel Bijl, a11y] Michiel Bijl welcomes <@U07VDA997|robdel12>
  218. zakim-robot
    20:29
    [Michiel Bijl, a11y] Yeah I missed a bit, got me all worried there for a bit.
  219. zakim-robot
    20:29
    [robdel12, a11y] Heh browsers! How do they work
  220. zakim-robot
    20:30
    [Michiel Bijl, a11y] Browsers are like god, the don’t exist.
  221. zakim-robot
    20:30
    [Michiel Bijl, a11y] No, I meant: Browsers are like god; they work in mysterious ways.
  222. zakim-robot
    20:32
    [robdel12, a11y] And they’re all just different enough
  223. zakim-robot
    21:14
    [Alice Boxhall, a11y] @stevefaulkner thanks for the pointer, just checked it out
  224. zakim-robot
    21:40
    [Marcy Sutton, a11y] Hi @serendavies!
  225. zakim-robot
    21:48
    [serendavies, a11y] Hey @Marcy Sutton :smile:
  226. zakim-robot
    21:48
    [Bill Nordwall, a11y] Hi folks! I’m Bill Nordwall - front-end developer and co-founder of Foundry Interactive in Seattle. I work with @Devon Persing on all sorts of a11y stuff. I’ve worked on a11y projects for Target, WaMu (RIP), Zillow, University of Washington and many others over the past 15 years or so.
  227. zakim-robot
    21:49
    [Devon Persing, a11y] :fist:
  228. zakim-robot
    21:50
    [Marcy Sutton, a11y] Yay! Hi, fellow Seattleites @Bill Nordwall @Devon Persing :smile:
  229. LjWatson
    21:51
    Welcome @Bill
  230. zakim-robot
    21:52
    [Bill Nordwall, a11y] thanks @ljwatson @Marcy Sutton !
  231. zakim-robot
    21:58
    [Jordan Scales, a11y] welcome @Bill Nordwall @Devon Persing !
  232. zakim-robot
    22:00
    [Marcy Sutton, a11y] Devon has been here for a while…I was just giving a holler to my local a11y heroes :simple_smile:
  233. zakim-robot
    22:14
    [Nadav Spiegelman, a11y] How would you mark up an input with additional instructions beyond the label? E.g., “Password must be 85 characters or longer."
  234. zakim-robot
    22:16
    [garcialo, a11y] You could put the instructional text in a P tag in close proximity, give that tag an ID like "description" and then give the INPUT an attribute of aria-describedby="description"
  235. zakim-robot
    22:16
    [garcialo, a11y] placeholder would probably also work
  236. zakim-robot
    22:17
    [Nadav Spiegelman, a11y] Ah, aria-describedby sounds good. Thanks! "Example 2: Using aria-describedby to associate instructions with form fields"
  237. stevefaulkner
    22:32
    @nadavspi there is some funkyness in IE's support for aria-describedby that you may want to take into account details: http://www.w3.org/TR/aria-in-html/#aria-labelledby-and-aria-describedby
  238. zakim-robot
    22:34
    [Nadav Spiegelman, a11y] Hm okay, looking at that now.
  239. stevefaulkner
    22:44
    I do believe this quirk will go away in Edge...
  240. zakim-robot
    22:49
    [Nadav Spiegelman, a11y] Noted. Thanks Steve.
  241. stevefaulkner
    22:49
    np :+1:
  242. indrekpaas
    22:55
    @stevefaulkner are you considering creating aViewer for Mac?
  243. stevefaulkner
    22:59
    @indrekpaas not really, unless someone who can code it volunteers. I use http://pfiddlesoft.com/uibrowser/ on Mac (costs $$) but there is a fully functional free trial version for 30 days
  244. indrekpaas
    23:04
    @stevefaulkner great, I'll check that out! Thanks!
  245. LjWatson
    23:32
    Anyone around with access to VoiceOver and/or TalkBack, and 2 minutes to test something?
  246. LjWatson
    23:32
    Curious whether screen readers pick up on a role change automatically, and announce it to users whilst focus is on the element in question.
  247. alice
    23:33
    @LjWatson I can check with VO
  248. LjWatson
    23:33
    Thanks @Alice
  249. LjWatson
    23:33
    Jaws on FF does, NVDA on FF doesn't (although it recognises the role change if the element is queried).
  250. LjWatson
    23:34
    Same results in IE.
  251. alice
    23:34
    I can't get Chrome or Safari to recognise the role at all
  252. alice
    23:34
    no notification of change but even if I navigate away and back it's still announced as a button
  253. alice
    23:35
    so maybe if you use <div role=button> ?
  254. LjWatson
    23:35
    Interesting. It's te same in Chrome on Windos too.
  255. LjWatson
    23:36
    I'll try it. Give me a mo.
  256. rodneyrehm
    23:38
    @stevefaulkner interesting. how is the thing editable, when it’s not focusable? (at least my test says it isn’t - will investigate on Thursday) thx!
  257. ckundo
    23:40
    @alice @LjWatson I was able to get Chome/VO to announce the button as a heading
  258. alice
    23:41
    @ckundo How?
  259. ckundo
    23:41
    ah, I’m guessing Leonie you updated the test case :)
  260. alice
    23:41
    I see it still exposed in the a11y tree as a button - even with the <div> version
  261. alice
    23:41
    (After the role change)
  262. alice
    23:42
    Ohhh hang on I see what's happening
  263. alice
    23:42
    need to move focus away and back
  264. alice
    23:42
    page focus I mean
  265. LjWatson
    23:42
    @ckundo Yes, sorry, it's now a div per the suggestion from @Alice
  266. rodneyrehm
    23:42
    .oO( reading “there’s something funky with … aria …” and wondering if that is ever not the case )
  267. ckundo
    23:43
    @LjWatson no problem!
  268. zakim-robot
    00:01
    [Alice Boxhall, a11y] @ljwatson heading is not an allowed role for <button> according to http://www.w3.org/TR/html-aria/#document-conformance-requirements-for-use-of-aria-attributes-in-html
  269. LjWatson
    00:01
    @Alice Good point. I just used the first role that came to mind. You think that might be causing the delay in Chrome
  270. LjWatson
    00:02
    ?
  271. zakim-robot
    00:02
    [Alice Boxhall, a11y] Well not when you're using <div>
  272. zakim-robot
    00:02
    [Alice Boxhall, a11y] I'm not sure what that's about. I'm not sure what triggers the a11y tree to update
  273. LjWatson
    00:03
    No, me either. I'm guessing it's pushed through from the event, but beyond that...
  274. LjWatson
    00:04
    Triggered by the DOM change.
  275. zakim-robot
    00:05
    [Alice Boxhall, a11y] I've asked dmazzoni, he should know
  276. LjWatson
    00:06
    Cool :)
  277. zakim-robot
    00:58
    [Alice Boxhall, a11y] He says "looks like a bug"