Archive index

A11y Slackers Gitter Channel Archive 11th of January 2016

What fresh hell is THIS now? - Patrick Lauke
  1. zakim-robot
    Jan 11 01:44
    [jessebeach] @MichielBijl @callumacrae indeed, that was not me :simple_smile:
  2. zakim-robot
    Jan 11 01:45
    [jessebeach] But I have raised the issue of accessibility of Slack itself. Maybe I can convince folks at FB to write about the work we're doing for Messenger to make it accessible. It seems that Slack has analogous interaction.
  3. zakim-robot
    02:02
  4. zakim-robot
    02:03
    [jitendra] This is bit surprising to me from a very popular service
  5. garcialo
    02:05
    How is it surprising? They've existed for years not really care much about accessibility and only hired an a11y person in 2015. Give 'em time. ;)
  6. garcialo
    02:05
    To be fair, I don't know that they didn't care about a11y. I'm just assuming.
  7. zakim-robot
    02:08
    [jitendra] I’m surprising because because I have worked with many developers which didn’t know the term “Accessibility” but even they would have used Any heading tag for page tittle.
  8. zakim-robot
    02:11
    [jitendra] I also checked some recent code on the website, written in react is also has basis mistakes.
  9. zakim-robot
    02:53
    [karlgroves] Never underestimate the common developers’ ability to do non-intuitive and illogical things that result in semantically sub-optimal markup
  10. jkva
    09:09
    On that subject
  11. jkva
    09:09
    I have a bunch of data on a subject. Mainly key-value.
  12. jkva
    09:10
    My intuition is to use definitions lists; however those are a bitch to style
  13. jkva
    09:10
    I could also use a table, with ["Property", "Value"] columns. However that seems a bit hackish
  14. jkva
    09:10
    But semantically a <dl> is more correct. Any thoughts?
  15. iandevlin
    09:14
    One of these days I'll remember to log in here on a regular basis.
  16. jkva
    09:14
    Good localtime(), @iandevlin
  17. jkva
    09:21
    Hmm, http://snook.ca/archives/html_and_css/definition-lists-v-tables is very insightful. I wonder how up to date it still is.
  18. iandevlin
    09:22
    Hello @jkva !
  19. iandevlin
    09:23
    Well if <dt> et al are what fits, then I would say use it, regardless of how difficult they are too style. Semantics and all that.
  20. jkva
    09:23
    Yes, I'm inclined to follow that approach
  21. jkva
    09:24
    I'd have to run some tests w/ voiceover and Jaws to see how they interpret dls
  22. iandevlin
    09:24
    I, and others too I am sure, would be interested to hear the results.
  23. stevefaulkner
    10:03
    @StommePoes FYI html5 doc outline implemnted as XSLT in ePub https://code.google.com/p/daisy-pipeline/wiki/EPUB3NavUtils#px:epub3-nav-create-toc (i recall you sniffing after it)
  24. stevefaulkner
    10:04
    hey @iandevlin (thought I had muted you) ;-)
  25. iandevlin
    10:11
    @stevefaulkner :-p
  26. StommePoes
    11:03
    @jkva NVDA misreads DLs (announces the total of dts and dd's instead of number of pairs, which JAWS does do right) but use the right element for the job anyway.
  27. StommePoes
    11:03
    dt's won't mean anything though
  28. StommePoes
    11:04
    @stevefaulkner thanks, yeah all our books were apparently coded using the outline. Dangerous what a bit of half-truths can do
  29. stevefaulkner
    11:10

    Dangerous what a bit of half-truths can do

    ?

  30. MichielBijl
    11:17

    @jkva NVDA misreads DLs (announces the total of dts and dd's instead of number of pairs, which JAWS does do right) but use the right element for the job anyway.

    The damn things have been around for 25 years

  31. jkva
    11:18
    /shrug
  32. jkva
    11:18
    I'm gonna see if I can file that somewhere after confirmation
  33. stevefaulkner
    11:21

    NVDA misreads DLs (announces the total of dts and dd's instead of number of pairs

    browser(s)?

  34. jkva
    11:22
  35. jkva
    11:23
    Thanks for the article, just a quick note: Chome isn't the best choice as the browser itself is largely inaccessible. The browser decides what he gives to the Accessibility API, and that's where chrome fails with th elements, it seems.
  36. jkva
    11:23
    But I'm fairly new to this stuff
  37. MichielBijl
    11:25
    Safari + VoiceOver does the same thing (announce all items instead of pairs)
  38. jkva
    11:25
    Bah
  39. MichielBijl
    11:28
    ChromeVox + Chrome doesn't even do dl's
  40. MichielBijl
    11:29
    cvox+n>o doesn't recognise definition lists as lists…
  41. jkva
    11:29
    Hm. I hope I've not been writing dl's for squat
  42. stevefaulkner
    11:30
  43. MichielBijl
    11:33
  44. StommePoes
    11:34
    fixed and closed in 2015, is it out in normal chrome yet?
  45. StommePoes
    11:35
    @stevefaulkner the guidelines for the code framework used for epub books use all h1s everywhere, because they believed in the html5 document outline, that is what I meant
  46. StommePoes
    11:35
    NVDA does this in at least FF and IE, prolly others too
  47. StommePoes
    11:36
    it's a known bug, already filed
  48. StommePoes
    11:36
    and it's hit us at work, we just ignore it
  49. stevefaulkner
    11:37
    @StommePoes re chrome and th, yes fixed in current chrome just tested with http://thepaciellogroup.github.io/AT-browser-tests/test-files/table-caption-thead-tbody-tfoot-tr-th-td.html
  50. StommePoes
    11:37
    So in Michiel's test, JAWS would say there are two lists, each with 2 items. NVDA would say there are 2 lists, each with 4 items.
  51. MichielBijl
    11:38
    VoiceOver the same. ChromeVox ignores them as lists.
  52. StommePoes
    11:38
    ChromeVox, FireEyes, whatever
  53. StommePoes
    11:38
    Hm, later today I should test what Narrator does.
  54. MichielBijl
    11:38
    Probably narrate some stuff…
  55. MichielBijl
    11:43
    @jkva wouldn't this work for your dl:
    <table>   <thead>     <tr>       <th scope="col">Name</th>       <th scope="col">Description</th>       <th scope="col">Status</th>     </tr>   </thead>   <tbody>     <tr>       <th scope="row">Denmark</th>       <td>A lovely little country with lots of bikes.</td>       <td>Drinking beer (probably)</td>     </tr>     <tr>       <th scope="row">Netherlands</th>       <td>A lovely little country full of dutch fuckers.</td>       <td>Pissing off Steve</td>     </tr>   </tbody> </table>
    
  56. jkva
    11:43
    Sometimes. Status isn't always applicable
  57. MichielBijl
    11:44
    Could be an empty cell
  58. jkva
    11:44
    And I just spent a good amount of hours creating definition lists >_<
  59. MichielBijl
    11:44
    s/<dt/<th scope="row"/ =P
  60. StommePoes
    11:44
    They're hard to style because no wrapping element is allowed inside the dl, so no way to easily say "this dt and dd(s) are a single unit)
  61. jkva
    11:44
    Yeah true
  62. StommePoes
    11:45
    so another possibility is just a list, where the li has a heading (dt) and a p (dd)
  63. MichielBijl
    11:45
    @StommePoes that is only a problem if there are multiple dd's to a dt
  64. MichielBijl
    11:46
    dt + dd { content: "What a lovely fucking couple" }
  65. StommePoes
    11:53
    It's a problem any time you have more than a 1-1 relationship, and a problem is either side could be way larger/longer than the other
  66. StommePoes
    11:54
    and I've used every hack known to man to make DLs look like lists with borders making lines underneath, and there's always been a case where it failed
  67. StommePoes
    11:55
    And yeah, there can be multiple dd's to a dt. Heck, in dictionaries (which most people aren't even writing DLs for), it's very common.
  68. MichielBijl
    11:57
    HTML spec uses a dictionary as example: http://www.w3.org/TR/html5/grouping-content.html#the-dd-element
  69. MichielBijl
    12:05
    If a browser doesn't support @supports it should ignore the entire block right?
  70. StommePoes
    12:08
    @MichielBijl yes, and they do not style it in any of the ways we tend to be asked to style. Styling (rather than semantics) tends to be the reason people switch over to ul>li's or 2-column tables. Because doing a DL and then having an underline break because some browser wraps someone to a new line means someone higher up will be talking to you about fixing it. You'll spend several hours trying out several solutions with CSS and finally you will switch to something else (if you have such an employer who demands these things).
  71. StommePoes
    12:10
    was only doable because I made the font smaller for IE
  72. StommePoes
    12:10
    bleh
  73. MichielBijl
    12:10
    Nowadays you can probably flexbox that shit
  74. MichielBijl
    12:10
    Or use floats and calc()
  75. StommePoes
    12:11
    flexbox plus a polyfill
  76. MichielBijl
    12:11
    Don't tell my girlfriend, but I love calc()
  77. StommePoes
    12:11
    What's less hassle for developers, users, and browsers? Avoiding the extra request for the polyfill and using another element
  78. StommePoes
    12:11
    Yeah I loved it back when Opera was the only supporter
  79. StommePoes
    12:11
    And floats are not cool
  80. StommePoes
    12:11
    because, again, we have no wrapping element we can rely on
  81. MichielBijl
    12:11
    Unless your ship is sinking…
  82. StommePoes
    12:12
    sometimes the dt should clear everything before it, but sometimes not
  83. StommePoes
    12:12
    and it all depends on how many lines each side takes up
  84. StommePoes
    12:13
    which, if the page is responsive, is you have no idea how many lines it takes up. The URL above isn't responsive so it didn't matter there, but sometimes the data for opening times wasn't a short bit of times, but some stores would type in this whole paragraph about when the office closes for lunch and when it reopens, except on these certain holidays etc etc.
  85. StommePoes
    12:13
    Stores who do that I think are still broken actually, not sure...
  86. MichielBijl
    12:14
    In your ul/ol example, wouldn't it be possible to link the title/dt to a dfn element?
  87. MichielBijl
    12:15
    Not sure if that improves anything
  88. StommePoes
    12:16
    no idea, I've never used the dfn element
  89. StommePoes
    12:16
    plus, I see dl's as key-value pairs, but dfn is... an actual definition, I thought?
  90. MichielBijl
    12:17
    Yes
  91. StommePoes
    12:17
    Actually, looks like I could fill a lot of crap in mine and they were still mostly ok http://www.quantorexpress.nl/verkooppunten/noordhuis/52/
  92. StommePoes
    12:17
    whoops
  93. MichielBijl
    12:17
    definition title/data, so dfn seemed appropriate
  94. MichielBijl
    12:18
    Those would be cool values for that list though =P
  95. MichielBijl
    12:18
    I'd be much more inclined to buy stuff from them
  96. StommePoes
    12:18
    Lawlz. It died in IE
  97. StommePoes
    12:18
    even after I made sure the HTML didn't ahve any spaces in it
  98. StommePoes
    12:19
    since you know, IE doesn't add spaces between inline-block elements but other browsers do if it's in the markup
  99. MichielBijl
    12:19
    Chrome does to no?
  100. MichielBijl
    12:19
    Uhm, sorry
  101. StommePoes
    12:19

    so the markup's all like </dd

    <dt>blah</dt

    <dd> etc </dd

  102. StommePoes
    12:19
    Just IE
  103. MichielBijl
    12:19
    Safari doesn't do that I thought
  104. MichielBijl
    12:19
    Can't remember /lazy
  105. StommePoes
    12:20
    hm gitter removes my >
  106. StommePoes
    12:20
    It's because the spec didn't insist either way
  107. MichielBijl
    12:20
    You need to use ticks
  108. StommePoes
    12:20
    IE's not wrong, except it's the only one who does it
  109. StommePoes
    12:20
    which makes it wrong in our book
  110. MichielBijl
    12:20
    `````
  111. stevefaulkner
    12:35
    recent definition list thread on webaim http://webaim.org/discussion/mail_thread?thread=7089
  112. MichielBijl
    14:03
    SPAM: on working in tech, accessibility, and why you shouldn't hire me: http://www.michielbijl.nl/2016/01/11/you-dont-want-to-hire-me/#main
  113. StommePoes
    14:30
    lawlz, charset fail --> Léonie.
  114. StommePoes
    14:34
    I always gag when I see an email list and then realise some of those posts are mine. Ug.
  115. garcialo
    15:25
    Are display: none, visibility: hidden, and aria-hidden="true" the only ways of "hiding" something programmatically?
  116. MichielBijl
    15:27
    <del>?
  117. MichielBijl
    15:28
    And everything after <summary>
  118. LjWatson
    15:28
    @garcialo the HTML hidden attrib also.
  119. garcialo
    15:29
    Ah yeah, @LjWatson I tend to forget about that one.
  120. garcialo
    15:29
    @MichielBijl I didn't realize <del> would hide it; but I guess that makes sense
  121. MichielBijl
    15:30
    The del element represents a removal from the document.
  122. MichielBijl
    15:30
    So, yeah =P
  123. LjWatson
    15:31
    <del> doesn't hide it AFAIK.
  124. LjWatson
    15:31
    It just represents a chunk of content that has been deleted from a document. Like track changes in Word.
  125. LjWatson
    15:32
    Visually it is displayed as having a strikethrough I believe.
  126. MichielBijl
    15:32
    Crap, you're right @LjWatson, it just puts trike through on it.
  127. MichielBijl
    15:32
    Could've sworn it would hide it.
  128. MichielBijl
    15:33
    My bad @garcialo
  129. garcialo
    15:33
    Does AT communicate anything for <del>?
  130. LjWatson
    15:35
    No. Doesn't look like it's mapped in any of the accessibility APIs, and I don't think any AT goes to the DOM to support it either.
  131. MichielBijl
    15:41
    It's not on html5accessibility.com
  132. LjWatson
    15:42
    No it isn't, but it's in the HTML AAM
  133. stevefaulkner
    15:56
    Only newish HTML features are on Html5acc site
  134. jnurthen
    16:04
    @LjWatson Isn't there a "document editing" mode in jaws which will read text styling. Obviously would need some way to flag to users that del and ins and such like we're there so the user knew to turn on the mode.
  135. garcialo
    16:07
    That would be neat to include on an a11y page. "Here are some patterns that we use, test drive them with your AT. Did you know you can configure your AT to be more verbose?"
  136. garcialo
    16:07
    I mean, I figure that content would be ignored anyway, but still. =p
  137. LjWatson
    16:10
    @JNurthen yes, in most screen readers AFAIK. Like you mention the problem is knowing that you need to query the text though.
  138. MichielBijl
    16:10
    VoiceOver+Safari announces the text no different than other text.
  139. MichielBijl
    16:10
    You can do VO+T to hear the styling, but that doesn't work if you use <del> inside a paragraph
  140. MarcoZehe
    17:12
    I found VO+T falls over in a lot of situations lately, especially on El Capitan where things in Webkit quite dramatically regressed in a lot of places. Among them rich text editing.
  141. MarcoZehe
    17:13
    I know for sure we map text attributes for the <del> element in Firefox, and NVDA and Orca etc. can query it (NVDA+F, for example), but you have to know that this text is in some way interesting.
  142. StommePoes
    17:42
    I always prefixed my <del>s with hidden text, so they made sense
  143. StommePoes
    17:42
    Because they were just ordinary text in SR and ZT
  144. StommePoes
    17:43
    ```<span offscreen>Was </span><del>old price</del> <span offscreen> Now </span><ins>new price</ins>
  145. StommePoes
    17:43
    Otherwise there would just be two prices sitting around like ducks.
  146. MichielBijl
    17:44
    Is that proper use of del/ins?
  147. MichielBijl
    17:44
    Let me rephrase, is mention of a previous price really a deletion?
  148. StommePoes
    17:45
    it's the same as legal
  149. StommePoes
    17:45
    legal isn't real deletion either
  150. StommePoes
    17:45
    it means something was replaced
  151. StommePoes
    17:45
    <del>3 score ago</del> <ins>4 score and 7 years ago</ins>
  152. LjWatson
    17:45
    Yes, a previous price would be an acceptable use of <del>.
  153. LjWatson
    17:45
    At least semantically. Not accessibly so much.
  154. MichielBijl
    17:45
    Good to know
  155. MichielBijl
    17:46
    @StommePoes's code seems pretty accessible.
  156. StommePoes
    17:46
    It's when you want/need to user to know there was previously some other value/text, and it has been replaced... I mean otherwise, a pure update, you'd just... actually delete the old stuff and add the new stuff, no ins/del tags either way.
  157. jkva
    17:46
    Ha, I imagine that speech with crossed-out words and doodles now
  158. StommePoes
    17:46
    kinda like the BBS hackers using ^H^H^H to represent a fake misstep :)
  159. MichielBijl
    18:20
    Question, should the buttons under “Translation” output be toggle buttons or radio buttons? http://rawr.eu/translate.html
  160. MichielBijl
    18:20
    You can only have one selected.
  161. MichielBijl
    18:20
    But the button does an action (change the output language) so I'm guessing toggle buttons.
  162. zakim-robot
    18:22
  163. cptvitamin
    19:32
    strictly speaking, WCAG 2 contrast req are for text and images of text. if someone wants to have a low contrast twitter icon that links to their twitter page, its not a WCAG fail, right?
  164. garcialo
    19:33
    Correct.
  165. garcialo
    19:33
    WCAG contrast doesn't apply to not text.
  166. cptvitamin
    19:33
    thanks @garcialo for the sanity check
  167. garcialo
    19:33
    np
  168. zakim-robot
    21:13
    [cryberg] My understanding is that aria-haspopup only provides information if it is put on a button or a link. Is there any other aria property like aria-haspopup that will work on a regular div?
    I'm working with a generic div with tabindex=0 that contains a box with lot of information, and I want to convey to a screen reader user that a menu appears when the box is clicked anywhere and/or the enter key is pressed when it has focus
  169. MichielBijl
    21:18
    Yeah there is
  170. MichielBijl
    21:18
    If you replace the div with a button
  171. MichielBijl
    21:18
    It's a button after all
  172. MichielBijl
    21:18
    =)
  173. MichielBijl
    21:19
    Do the scripts behind that div catch enter/spacebar activation?
  174. MichielBijl
    21:21
    May I ask why you're not using a button?
  175. MichielBijl @MichielBijl note to self: ask questions before you make stupid comments
  176. zakim-robot
    21:24
    [cryberg] The scripts do catch spacebar and enter, it all functions correctly, it's just not obvious to a screen reader user that the functionality is there.
    We're not using a button because it's a rather large div that contains a lot of information, and just happens to be clickable. It didn't seem like something someone would expect to be a button? But I can see the argument both ways
  177. jnurthen
    21:25
    where do you get the impression that haspopup only provides info on buttons or links?
  178. zakim-robot
    21:26
    [cryberg] and putting aria-haspopup on the div didn't announce anything when I ran it through JAWS
  179. zakim-robot
    21:26
    [cryberg] it was ignored
  180. jnurthen
    21:27
    I see that as a JAWS bug - there is nothing in the spec to indicate that it is restricted to certain role types
  181. jnurthen
    21:27
    indeed one of the primary uses is combo boxes
  182. MichielBijl
    21:28
    You can use role=button
  183. jnurthen
    21:28
    but buttons can't have children
  184. jnurthen
    21:28
    you'd have to linearise all of that sub-content
  185. MichielBijl
    21:28
    You could argue that buttons with a lot of content aren't very nice to users
  186. jnurthen
    21:29
    personally I would make it all clickable and then pick one thing to be the keyboard/screen reader thing which actually takes focus and make that thing launch the popup for screen reader/keyboard users
  187. MichielBijl
    21:30
    Yeah that might be best.
  188. MichielBijl
    21:30
    But it all depends on the content of the div really.
  189. jnurthen
    21:30
    yeah
  190. jnurthen
    21:31
    this sounds a bit like a "tile" interface
  191. zakim-robot
    21:31
    [cryberg] Yeah
  192. zakim-robot
    21:31
    [cryberg] "tile" would be a close analogy
  193. jnurthen
    21:31
    i've been working on those recently - they are hard
  194. jnurthen
    21:31
    :)
  195. zakim-robot
    21:31
    [cryberg] haha, good to have some solidarity. Any good tile-accessibility-tips you've discovered?
  196. MichielBijl
    21:32
    @jnurthen you should add a “tile” design pattern to the guide ;)
  197. jnurthen
    21:32
    i wish i had time :)
  198. MichielBijl @MichielBijl is off to bed
  199. MichielBijl @MichielBijl waves
  200. jnurthen
    21:33
    some of it depends how you are envisioning your keyboard interface wokring
  201. zakim-robot
    21:33
    [cryberg] Thanks for the input @michiel
  202. jnurthen
    21:33
    are you thinking of arrow keys to the different "tiles" or tab key to the tile?
  203. jnurthen
    21:33
    what about when the tile might contain interactive content?
  204. zakim-robot
    21:33
    [cryberg] The design is for the tab key to put focus around the whole tile
  205. zakim-robot
    21:34
    [cryberg] and enter key will open the popover menu
  206. jnurthen
    21:34
    so do they possibly contain interactive content or are they limited
  207. jnurthen
    21:34
    (ours have interactive content too)... boo
  208. zakim-robot
    21:35
    [cryberg] The only current options are (only one is ever on a particular tile):
    • enter key to open a small popover table with static data
    • enter key to open a popover menu of buttons
    • enter key to expand a collapsed panel
  209. zakim-robot
    21:35
    [cryberg] oh, but then also the tiles are drag and droppable
  210. jkva
    21:35
    Huh. OSX VoiceOver keeps going into "Chrome Busy" when trying to read "μ".
  211. zakim-robot
    21:35
    [cryberg] (headdesk)
  212. jnurthen
    21:36
    drag/drop is easy - just add it to the menu
  213. zakim-robot
    21:38
    [cryberg] Ah! That would be simple, wouldn't it
  214. jnurthen
    21:38
    i would suggest just making a small portion of the tile a real button (for example the tile's header). The rest of the content could then be accessed using a screen reader's virtual buffer. You can still have mopuse handlers on the entire tile
  215. jnurthen
    21:38
    that is what i'm doing anyway....
  216. jnurthen
    21:39
    (or more accurately - asking our developers to do ;) )
  217. jnurthen
    21:40
    In my experience once you have a working keyboard model drag and drop is rarely very difficult to implement for keyboard users
  218. zakim-robot
    21:40
    [cryberg] I'll run that by the designers, thanks! In the event that they don't want tab focus to be anywhere other than surrounding the entire tile, instead of an inner button, do you think it could suffice to have some screen reader only text explaining that there is functionality there?
  219. zakim-robot
    21:43
    [cryberg] I want to do a seminar or something the the designers to explain why what they are asking of us developers is not very accessible...
  220. zakim-robot
    21:46
    [cryberg] I will look into the drag and drop too, but I think you are right, we have a good keyboard model already
  221. jnurthen
    21:49
    you could do. But what do the designers care. You could still draw an outline around the entire button. To a keyboard user and mouse user it would be the same.
  222. zakim-robot
    21:55
    [cryberg] I will look into that, thank you!!