/irc-logs / freenode / #whatwg / 2008-05-03 / end

Options:

  1. # Session Start: Sat May 03 00:00:01 2008
  2. # Session Ident: #whatwg
  3. # [00:19] <Hixie> man i wish anne would provide an obvious link to the editor's copies of his drafts on the TR versions
  4. # [00:19] <Hixie> i can never find the latest versions of his specs
  5. # [00:22] <Hixie> christ dev.w3.org is such a mess
  6. # [00:22] <Hixie> how am i supposed to guess that access-control is a waf spec, and how am i supposed to guess the waf was created in 2006?
  7. # [00:26] <Hixie> hrm
  8. # [00:26] <Hixie> did we remove the ability to opt-in to certain methods?
  9. # [00:27] <Hixie> i guess we did
  10. # [00:28] <Lachy> Hixie, have you been following the selectors api thread about :scope vs. other methods?
  11. # [00:28] <Hixie> yeah
  12. # [00:28] <Lachy> what's your opinion on the issue?
  13. # [00:29] <Hixie> i don't understand the issue
  14. # [00:29] <Hixie> i mean, i understand what is being requested
  15. # [00:29] <Hixie> i don't understand the use case
  16. # [00:30] <Lachy> there are several use cases that need to be addressed.
  17. # [00:30] <Hixie> i agree that a pseudo-class that matches the context node might be useful, but it seems like a v2 thing
  18. # [00:30] <Lachy> yeah, that was the original plan
  19. # [00:30] <Hixie> i don't agree with changing selectors to only look at nodes at the context plan or lower
  20. # [00:30] <Hixie> that seems silly
  21. # [00:30] * Quits: qwert666_ (n=qwert666@acdf242.neoplus.adsl.tpnet.pl) ("Leaving")
  22. # [00:31] <Lachy> yeah, that's what I think. But it is the behaviour of current JS library versions
  23. # [00:31] <Hixie> so? this doesn't stop them existing
  24. # [00:31] <Hixie> not my fault they are all buggy...
  25. # [00:31] <Lachy> yeah, I guess.
  26. # [00:33] <Lachy> JohnResig, yt?
  27. # [00:34] <JohnResig> Lachy: what's up?
  28. # [00:36] <Lachy> I don't see what problem is being solved by changing the API, that won't be solved by adding :scope in the near future
  29. # [00:36] <Hixie> (:scope is a terrible name btw)
  30. # [00:36] <Hixie> (imho!)
  31. # [00:36] <Lachy> Hixie, any better suggestion?
  32. # [00:36] <Hixie> sadly not
  33. # [00:36] <Hixie> so i'm afraid i'm not much help
  34. # [00:36] <Hixie> :-)
  35. # [00:36] <Lachy> so far the options are :self, :this, or :scope
  36. # [00:36] <Hixie> :context-node
  37. # [00:36] <Hixie> :current
  38. # [00:37] <Lachy> yeah, they could work
  39. # [00:37] <Hixie> :query-root
  40. # [00:37] <Hixie> i dunno
  41. # [00:37] <Hixie> i guess it doesn't matter that much
  42. # [00:37] <Hixie> i do like the :query-root name, since this is similar to :root in many ways
  43. # [00:37] <Hixie> indeed some people suggested just using :root
  44. # [00:37] <Hixie> which i disagree with
  45. # [00:37] <Hixie> but i see the logic
  46. # [00:38] <Lachy> naming debates are fun :-)
  47. # [00:38] <Hixie> the final decision is up to you obviously
  48. # [00:38] <Lachy> that's what I thought the last time I was in a naming debate
  49. # [00:38] <Hixie> i'm just throwing in my twopence or however you spel that
  50. # [00:38] <Hixie> yeah well
  51. # [00:38] <JohnResig> Lachy: so you're perfectly happy with Safari, Opera, Firefox, and Internet Explorer all shipping with no way of finding child (or adjancent) elements and returning inconsistent results? and everyone being stuck with using that broken method for years to come?
  52. # [00:39] <Hixie> the w3c hasn't quite caught up with the 21st century yet
  53. # [00:39] <Lachy> JohnResig, why couldn't we spec and ship with support for :scope, in the same time it would take to change the API?
  54. # [00:39] <Hixie> why would they be inconsistent results?
  55. # [00:40] <Hixie> and how is there no way to find child or adjacent elements?
  56. # [00:40] <Hixie> i guess it would help to see the use cases
  57. # [00:40] <JohnResig> Hixie: note the examples that I provided in the thread - finding elements that are globally-rooted rather than contextually-rooted goes against all previous implementations
  58. # [00:41] <Hixie> JohnResig: sure, but like i said, it's not my fault all those implementations are buggy
  59. # [00:41] <JohnResig> Hixie: define "buggy" - "buggy" seems to be "we have better control over the selectors that we can provide"
  60. # [00:41] <Hixie> buggy as in they don't implement selectors correctly
  61. # [00:41] <Hixie> selectors aren't rooted at a different tree
  62. # [00:41] <Lachy> it's easier to add contextually-rooted support later (or at the same time), than it is to add globally-rooted selectors
  63. # [00:42] <Hixie> but anyway that's not a use case
  64. # [00:42] <Hixie> that's just past implementations
  65. # [00:42] <othermaciej> JohnResig: old Safari versions fall to infinitesimal market share pretty quickly
  66. # [00:42] <Lachy> in fact, it would be impossible to do the latter without introducing a whole new method
  67. # [00:42] <Hixie> use cases are what i'd like to see
  68. # [00:42] <othermaciej> JohnResig: at least as to WebKit, I think your concern about old versions is overblown
  69. # [00:42] <JohnResig> othermaciej: I'm not worried about Safari at all - I'm crazy-concerned about IE
  70. # [00:42] * Joins: hober (n=ted@unaffiliated/hober)
  71. # [00:43] <JohnResig> if browsers are released that don't implement :scope then, effectively, developers won't be able to use Element.querySelectorAll in them
  72. # [00:43] <Hixie> it's trivial to fake :scope
  73. # [00:43] <JohnResig> oh, is this the fun "add an ID to the element then remove it later" - yeah, that' BS
  74. # [00:43] <JohnResig> *that's
  75. # [00:43] <Lachy> yeah, it can be done with an ID selector (even if that ID is temporarily auto-generated by the API
  76. # [00:44] <Lachy> I know it's not optimal
  77. # [00:44] <Hixie> it's no more BS than the idea that we need it in the first place :-)
  78. # [00:44] <JohnResig> except that's something that should be done by the implementation in the first place
  79. # [00:44] <Hixie> but like i said, i'd need use cases to work out what the actual discussion point is
  80. # [00:44] <Hixie> arguing about an API design in the absence of use cases is meaningless
  81. # [00:45] <Hixie> it could be that the best anchor point is the parent's previous sibling for all i know
  82. # [00:45] <Lachy> JohnResig, do you have some example pages that use the JS libraries in the way you describe?
  83. # [00:45] <JohnResig> Lachy: using contextual selectors? how many do you want?
  84. # [00:45] <Hixie> 5 would be nice
  85. # [00:48] * Quits: jacobolus (n=jacobolu@140.247.156.168)
  86. # [00:49] * Joins: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu)
  87. # [00:49] * Quits: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu) (Client Quit)
  88. # [00:51] <jwalden> Hixie: 'If the scheme is "file:", then the user agent may return a UA-specific origin.' -- there shouldn't be a colon in "file", methinks
  89. # [00:51] * eseidel_ is now known as eseidel
  90. # [00:52] <Hixie> you sure?
  91. # [00:53] <Hixie> i forget if scheme includes the colon or not
  92. # [00:53] <Hixie> ah it does not
  93. # [00:53] <Hixie> ok
  94. # [00:53] <Hixie> i have removed it
  95. # [00:53] <Hixie> thanks!
  96. # [00:53] <Hixie> (won't appear in the spec for a while)
  97. # [00:54] <Philip`> Are contextual selectors in jQuery done with thing.filter('selector')?
  98. # [00:54] <JohnResig> Here's about 200, give or take, http://www.google.com/codesearch?hl=en&lr=&;q=jquery+\.find+-%22New+Wave+JavaScript%22+file%3Ajs%24&btnG=Search
  99. # [00:55] * Lachy looks...
  100. # [00:55] <JohnResig> Philip`: those are filters - contextual selectors are done with .find()
  101. # [00:55] <Philip`> JohnResig: Ah, thanks
  102. # [00:55] <JohnResig> Lachy: those are only the ones that use .find() - there's a bunch that do jQuery("selector", element)
  103. # [00:56] <JohnResig> this is also ignoring the ones that are used in jQuery directly - and ones that are used by other frameworks
  104. # [00:57] <JohnResig> some of these queries won't be applicable to querySelectorAll (unless, of course, it's made to work on document fragments)
  105. # [00:57] <Lachy> what's the difference between .find() and jQuery("selector", element)?
  106. # [00:57] <JohnResig> Lachy: there is none - they're identical
  107. # [00:58] <JohnResig> doing jQuery("selector", element) just maps to jQuery(element).find("selector")
  108. # [00:58] <Philip`> The first few I find via dmoz.org are ...
  109. # [00:58] <Philip`> http://www.dorez.com/ - $(this).find("+ ul")
  110. # [00:58] <Philip`> http://www.queens.edu/athletics/wvolleyball/home.asp - $("#nav").superfish(...).find(">li[ul]")
  111. # [00:58] <Philip`> http://www.fortdalles.com/ - $(this).find("a")
  112. # [00:58] <Philip`> (plus another dozen or so)
  113. # [00:58] <JohnResig> the second one is using an old version of jQuery - but the other two are applicable
  114. # [00:59] <JohnResig> the second one would be written .find("> li:has(ul)")
  115. # [00:59] <JohnResig> Philip`: what's the search that you used?
  116. # [01:00] <Lachy> .find("+ ul") one couldn't work even with :scope, or any other proposed solution, since .querySelector only returns descendant nodes
  117. # [01:01] <JohnResig> as the spec is written, that is
  118. # [01:02] * Quits: aaronlev (n=chatzill@pD9E4DF68.dip.t-dialin.net) ("ChatZilla 0.9.81 [Firefox 3.0pre/2008050206]")
  119. # [01:03] <Lachy> I'm not even sure how it could be rewritten to add the ability, and doing so would add a significant amount of development time for both the spec and implementations
  120. # [01:03] <Philip`> Hmm, I also found one duplicate of the superfish script, and two of the find("a") script, and the rest are:
  121. # [01:03] <Philip`> http://cafe.daum.net - $(this).find("CONTENT")
  122. # [01:03] <Philip`> http://www.abenteuer-reisen.de/wg/ph/ http://www.abenteuer-reisen.de/wg/cv/wg_cv__rf00__index.htm - $(this).find("option:selected")
  123. # [01:03] <Philip`> http://www.mat.uni.torun.pl/wosp2001/ - portlet.find('.portlet-content-container')
  124. # [01:03] <Philip`> http://www.rodgersinstruments.com/ - $(this).find("a[@class='active']")
  125. # [01:03] <Philip`> http://www.dostavka.ru/ - $node.find("div.node_ajax")
  126. # [01:03] <Lachy> $(this).find("a") works with the current API
  127. # [01:04] <Philip`> (or at least that's what they were two months ago - at least the last of those sites has changed now)
  128. # [01:04] <Philip`> JohnResig: I downloaded ~130K pages that were listed on dmoz.org a couple of months ago, then grepped for /\.find\(["']/
  129. # [01:05] <JohnResig> Philip`: ah, neat
  130. # [01:05] <Lachy> so the proposed changes are only relevant when one wants to acquire either a child node of the context node (":scope>*") or using descendant combinators, such that all parts of the selector only match elements within the context (":scope foo bar")
  131. # [01:08] <Lachy> with the current spec, only the last simple selector in the sequence needs to match an element within context, whereas all others can match any ancestors or previous siblings (depending on the combinators)
  132. # [01:08] <Philip`> JohnResig: Just in case it's of any interest: Of those 130K pages, http://philip.html5.org/misc/jquery-pages.txt lists the ones matching /<script[^>]*jquery/
  133. # [01:08] <JohnResig> Philip`: neat - thanks!
  134. # [01:08] <Hixie> ":scope>*" isn't a valid use case for this, that's what the element traversal stuff is for
  135. # [01:09] <JohnResig> Hixie: but :scope > div.foo.bar[baz] is totally valid here
  136. # [01:09] <Hixie> yeah, what's the page that does that?
  137. # [01:10] <Hixie> most seem to just do a single simple selector chain
  138. # [01:10] <Hixie> or whatever the term is these days
  139. # [01:10] <Lachy> Philip`, I only used * in :scope>* because I was referring to the general case
  140. # [01:10] <Hixie> no combinators, i mean
  141. # [01:10] <Philip`> Lachy: s/Philip`/Hixie/ ?
  142. # [01:10] <Hixie> oh
  143. # [01:10] <JohnResig> here's one with at least two: jQuery(element.form || document).find('[@name=' + element.name + ']:checked')
  144. # [01:10] * Quits: KevinMarks (n=KevinMar@nat/google/x-cb0ae3bf536e2097) ("The computer fell asleep")
  145. # [01:11] <Hixie> that would work fine
  146. # [01:11] <Hixie> there's no combinator there
  147. # [01:11] <Lachy> Hixie, there are a couple that I have seen using .find(">x")
  148. # [01:11] <Hixie> Lachy: interesting syntax
  149. # [01:11] <Lachy> yeah, it's the equivalent to ":scope>x"
  150. # [01:12] <Hixie> right
  151. # [01:12] <Lachy> and it's the one I'm not sure how to solve without :scope
  152. # [01:12] <Hixie> seems like most of them don't do this
  153. # [01:12] <Hixie> which would suggest it's not a high prioprity
  154. # [01:12] <JohnResig> jQuery("> tbody:first/tr",o).find("> td:eq(" + COLUMN_LAST_INDEX + ")")
  155. # [01:12] <Hixie> priority
  156. # [01:12] <JohnResig> Hixie: they don't do it because it's slow - the point of this whole new API is to make it fast
  157. # [01:13] <JohnResig> if we're not striving to make things faster - that pure JS can't make faster - then there's really no point
  158. # [01:13] <Hixie> this data suggests many people use the api, just not with combinators
  159. # [01:13] <Hixie> i've no idea what "tbody:first/tr" is supposed to match
  160. # [01:13] <Lachy> nor do I.
  161. # [01:13] <Hixie> but it certainly won't work with the api anyway, so that again isn't an argument in favour of this
  162. # [01:13] <Hixie> i have to go to another building, but i'll be on irc again briefly
  163. # [01:13] * Joins: tantek (n=tantek@131.107.204.126)
  164. # [01:14] <Hixie> s/briefly/momentarily/
  165. # [01:14] <JohnResig> sure it is - we support some simple XPath expressions - we map them to CSS before parsing
  166. # [01:14] <Lachy> ok, so it tbody/tr the same as "tbody tr" or "tbody>tr"?
  167. # [01:14] <JohnResig> "tbody>tr"
  168. # [01:15] <Philip`> How would you do :eq with the Selectors API?
  169. # [01:16] <JohnResig> Philip`: we wouldn't - we'd have to fall back - which is why I've been arguing for good error reporting so that we can actually fallback gracefully
  170. # [01:16] * Joins: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu)
  171. # [01:16] * Quits: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu) (Client Quit)
  172. # [01:17] * Joins: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu)
  173. # [01:19] <Philip`> Is this almost like Array.forEach(o.querySelector('tbody').querySelectorAll('tr'), function (tr) { var td = tr.querySelectorAll('td')[COLUMN_LAST_INDEX]; foo(td) }) ?
  174. # [01:19] <Lachy> JohnResig, without :scope, how would you propose the API work to find child nodes of the context node in the following scenario?
  175. # [01:19] <Philip`> (Oh, except that won't work with nested tables)
  176. # [01:19] * Quits: billmason (n=billmaso@ip96.unival.com) (Read error: 104 (Connection reset by peer))
  177. # [01:20] <JohnResig> Philip`: roughly, yeah - it would seem!
  178. # [01:20] <Lachy> <div id=foo>A <div>B <div>C</div> B</div> A</div>
  179. # [01:21] <JohnResig> Lachy: without scope, just look for the front-leading >. I'm not really sure what the purpose of introducing :scope is if there's only one combinator that it'll work on
  180. # [01:21] <Lachy> with foo.querySelectorAll("..."); how would you find all child divs (the ones labelled B)
  181. # [01:21] <Philip`> After the querySelector('tbody'), it wants some way to find all the <tr>s that are direct children of that particular <tbody> (and not e.g. children of a tbody which is a descendant of that first tbody)
  182. # [01:21] <Lachy> because ">div" is an invalid selector
  183. # [01:21] <JohnResig> Lachy: unless it's defined to be valid
  184. # [01:21] <Lachy> and allowing that would require redefining the selector syntax
  185. # [01:22] <JohnResig> Lachy: new syntax is already being defined with :scope - it's not a leap of imagination
  186. # [01:22] <Lachy> the difference is :scope doesn't require chaning the grammar
  187. # [01:22] <Lachy> it's just another pseudo class
  188. # [01:23] <jgraham_> FWIW selectors like ">div" strike me as a bad idea
  189. # [01:23] <othermaciej> Lachy, JohnResig: since you're both here...
  190. # [01:23] <othermaciej> I was going to suggest on the list that there could be queryScopedSelector()
  191. # [01:23] <JohnResig> Lachy: but yeah, with the current spec, it's impossible to reliably find the <div>B one
  192. # [01:23] <othermaciej> which implicitly prepends ":scope "
  193. # [01:24] <othermaciej> and that might be what JS libraries want to use
  194. # [01:24] <JohnResig> othermaciej: I'd contend that it's what users want to use
  195. # [01:24] <othermaciej> at least that would clarify that it is using a different notion of a "scoped selector" instead of standard slector grammar and semantics
  196. # [01:24] <othermaciej> JohnResig: is that feedback in favor of or against my suggestion?
  197. # [01:25] <JohnResig> othermaciej: I think it's fine if it's implied - I just think that querySelectorAll should do that to begin with.
  198. # [01:25] <Lachy> othermaciej, are you suggesting that .queryScopedSelector(">div") implicitly becomes ":scope >div"?
  199. # [01:26] <Philip`> Does HTML5's <style scoped> have exactly the same issues?
  200. # [01:26] <othermaciej> Lachy: yes
  201. # [01:26] <Lachy> Philip`, yeah, introducing :scope addresses use cases for that too
  202. # [01:26] <JohnResig> othermaciej: I'm also assuming that there'd be .queryScopedSelectorAll and .queryScopedSelector?
  203. # [01:26] <othermaciej> Lachy: similarly, queryScopedSelector("div") becomes queryScopedSelector(":scope div")
  204. # [01:27] <othermaciej> Lachy: sorry, just querySelector the second time
  205. # [01:27] <othermaciej> JohnResig: presumably, yes
  206. # [01:27] * Quits: tantek (n=tantek@131.107.204.126)
  207. # [01:28] <othermaciej> JohnResig: the de facto syntax for selectors supported by JS library query APIs does not match standard selectors, and I am not sure changing the core selector syntax is the way to go, but I think this could be a plausible workaround that gives a simple well-defined notion of a "scoped selector"
  208. # [01:28] * Quits: roc (n=roc@121-72-173-175.dsl.telstraclear.net)
  209. # [01:28] <othermaciej> with grammar and semantics that better match JS libraries
  210. # [01:29] <othermaciej> of course there is still the fact that JS libraries support some extensions that CSS3 Selectors expressly forbids, which maybe should be handled by extending Selectors (things like ":not(a > b)")
  211. # [01:29] <othermaciej> I'm not sure what all the differences are
  212. # [01:31] <Lachy> I guess there's one advantage to introducing a separate method is that is allows libraries to test for it like: if (element.queryScopedSelector) {... }
  213. # [01:31] <JohnResig> I'm just completely confused as to why this wasn't done in the first place - and why it's not the default. Alternatively, I'd like to propose that querySelectorAll("selector") be equivalent to .queryGlobalSelector(":scope selector") (changing the primary querySelectorAll method to actually match precedence)
  214. # [01:32] <othermaciej> JohnResig: we had lots of input from UA implementors and CSS experts, but not so much from JS library authors or AJAX developers, when drafting the spec
  215. # [01:33] <JohnResig> :-|
  216. # [01:33] <othermaciej> so I think everyone assumed that normal selector syntax and semantics were what is desired
  217. # [01:33] <Lachy> I certainly assumed that
  218. # [01:33] <Lachy> while I was aware of the problem, I wasn't aware it was such a priority
  219. # [01:33] <Lachy> and assumed that it could be safely left to v2 and solved with :scope
  220. # [01:35] <othermaciej> in fact queryScopedSelector could even be defined without Selectors defining ":scope" first, because it could say it acts as if an unspecified simple selector uniquely matching the scope element is prepended
  221. # [01:36] <othermaciej> (I guess to each selector in a group of selectors, not just stringwise)
  222. # [01:36] <othermaciej> (since you want comma to work as expected)
  223. # [01:36] <othermaciej> so UAs could use an arbitrary mechanism to achieve that, and ":scope" can be added to the CSS Selectors spec later
  224. # [01:37] * Quits: hober (n=ted@unaffiliated/hober) ("ERC Version 5.3 (IRC client for Emacs)")
  225. # [01:38] <Lachy> ok, I'll think about it.
  226. # [01:38] <JohnResig> othermaciej: it seems like it would be better to not overload that method and, instead, provide a primary filtering method .filterSelector("div.class")
  227. # [01:38] <JohnResig> othermaciej: of course, that's more useful if the method also exists on DOMNodeLists
  228. # [01:39] <Lachy> I'm not sure how .filterSelector would work on anything but NodeLists
  229. # [01:39] <othermaciej> for NodeLists you obviously can't support scoped selectors
  230. # [01:39] <Lachy> but then, as I wrote in the email, I really need to see the use cases for it
  231. # [01:40] <othermaciej> I'm not sure what filterSelector does
  232. # [01:40] <Lachy> indeed. .filterSelector() would have to use the global context
  233. # [01:40] <Lachy> othermaciej, it takes a NodeList and evaluates the selector against the element in the context of the document
  234. # [01:41] <Lachy> and returns all matching elements
  235. # [01:41] <othermaciej> that's sorta the same thing as querySelectorAll, as currently defined
  236. # [01:41] <othermaciej> isn't it?
  237. # [01:42] <Lachy> it's not quite, but the reason I need use cases for it is because I can't see what it can solve that querySelectorAll can't
  238. # [01:42] * Joins: tantek (n=tantek@131.107.204.126)
  239. # [01:43] <othermaciej> is it that it can only match immediate children?
  240. # [01:44] <othermaciej> I guess thinking about it, querySelectorAll on a NodeList seems kind of weird
  241. # [01:44] <othermaciej> when would you want to do selector matching on a list of DOM subtrees?
  242. # [01:44] <Lachy> ok, so the advantages for queryScopedSelector/queryScopedSelectorAll() are: 1. Doesn't break the existing API, 2. Can be tested for by scripts, 3. Doesn't depend upon :scope being defined immediately
  243. # [01:44] <othermaciej> seems more likely you'd want to do it on a list of actual nodes
  244. # [01:45] <Lachy> othermaciej, I think your interpretation of how it would work is different from mine
  245. # [01:46] <Lachy> or I'm not sure what you meant by "selector matching on a list of DOM subtrees?"
  246. # [01:46] <othermaciej> Lachy: I am not sure how you see it working either
  247. # [01:46] <Lachy> ok, consider this:
  248. # [01:46] <othermaciej> I am drawing conclusions based on you saying filterSelector and querySelector all would be different
  249. # [01:46] <othermaciej> here is what I assumed the difference is:
  250. # [01:46] <Lachy> var list = document.getElementsByTagName("div");
  251. # [01:46] <othermaciej> filterSelector - can only match items actually in the node list, not their descendants
  252. # [01:47] <Lachy> var list2 = list.filterSelector(".foo");
  253. # [01:47] <othermaciej> querySelectorAll - can match items in the node list, or any of their descendants
  254. # [01:47] <Lachy> list 2 contains all the divs from the first list that had a class of foo
  255. # [01:47] <Lachy> basically, the result is the same as querySelectorAll("div.foo")
  256. # [01:47] <othermaciej> that seems to match my interpretation of filterSelector
  257. # [01:47] <Lachy> which is useless
  258. # [01:48] <Lachy> ok, good
  259. # [01:48] <othermaciej> Is my understanding of how NodeList.querySelectorAll would differ correct?
  260. # [01:49] <othermaciej> I can see how you could do things with filterSelector + querySelectorAll that can't be done with just QSA
  261. # [01:49] <Lachy> I assumed they would were just different possible names for the same thing.
  262. # [01:49] <othermaciej> for instance:
  263. # [01:49] <Lachy> I didn't think there were 2 separate suggestions
  264. # [01:50] <othermaciej> var list = document.querySelectorAll("div *")
  265. # [01:50] <othermaciej> var list2 = list.filterSelector("section *")
  266. # [01:50] <othermaciej> list 2 is all elements contained in both a div and a section, in either order
  267. # [01:50] <othermaciej> no, I guess I am wrong
  268. # [01:51] <othermaciej> you could instead query for "div section *, section div *"
  269. # [01:51] <Lachy> oh yeah, that's right. It's sort of like the :matches() proposal in Selectors
  270. # [01:51] <othermaciej> but with many independent conditions you could get a huge explosion of selector length
  271. # [01:51] <othermaciej> and maybe some trickier case is not trivially convertible to a group of two selectors
  272. # [01:52] <Lachy> yeah, I'm sure there are some rather complicated cases that it could simplify. But are there any such use cases that people are actually attempting?
  273. # [01:52] <othermaciej> you might also want to do foo.childNodes.filterSelector(), but queryScopedSelectorAll could do that
  274. # [01:52] <othermaciej> I dunno
  275. # [01:52] <othermaciej> I am just trying to understand it
  276. # [01:56] * Quits: tndH (i=Rob@adsl-87-102-36-33.karoo.KCOM.COM) ("ChatZilla 0.9.81-rdmsoft [XULRunner 1.8.0.9/2006120508]")
  277. # [01:59] * Quits: kingryan (n=ryan@c-24-5-77-167.hsd1.ca.comcast.net)
  278. # [02:02] <Lachy> I think that would mean foo.queryScopedSelectorAll("div").filterSelector("section *"); would be equivalent to foo.querySelector("section div");
  279. # [02:03] <othermaciej> Lachy: I think that's right
  280. # [02:06] <Lachy> queryScopedSelector() would need to prepend ":scope " (or equivalent magical selector) to evey sequence of simple selectors, so "strong, em" became ":scope strong, :scope em"
  281. # [02:07] <othermaciej> right
  282. # [02:10] <Lachy> ok, I've got a lot too think about and a lot more to do. I have to find out if IE, Mozilla and Opera would be willing and able to implement queryScopedSelector, then define it, and still evaluate whether or not it really is the best solution to go for
  283. # [02:18] * Joins: kevogod (n=Kevin@network185-253.wctc.net)
  284. # [02:21] * Quits: eseidel (n=eseidel@72.14.224.1)
  285. # [02:23] <hasather> Hixie: seen this: http://xiphmont.livejournal.com/31209.html
  286. # [02:35] * Quits: tantek (n=tantek@131.107.204.126)
  287. # [02:43] * Parts: hasather (n=hasather@90-231-107-133-no62.tbcn.telia.com)
  288. # [02:44] <Lachy> queryScopedSelector() won't work as easily as I initially thought. :-(
  289. # [02:44] <Lachy> Consider this:
  290. # [02:45] <Lachy> foo.queryScopedSelector(">strong, >em");
  291. # [02:46] <Lachy> I would basically need to define a special grammar for selectors used in this method in a way that is compatible with normal selectors, and doesn't break forwards compatibility
  292. # [02:46] <Lachy> it's basically a complete nightmare
  293. # [02:49] <Hixie> hsivonen: that doesn't look like the kind of stuff i'd write
  294. # [02:49] <Hixie> i don't even known how to spell antithesis
  295. # [02:51] <kevogod> I remember reading something about that months ago.
  296. # [02:52] <kevogod> http://64.233.167.104/search?q=cache:VvbdPyHxdxAJ:ventnorsblog.blogspot.com/2008/04/rated-p-for-proprietary.html%3FshowComment%3D1209354480000+The+distinction+between+the+video+format+war+and+the+browser+war&hl=en&ct=clnk&cd=2&gl=us&client=firefox-a
  297. # [02:52] <Hixie> yeah i just posted a link to that
  298. # [02:52] <kevogod> Oh, sorry.
  299. # [02:53] <kevogod> I am curious how "Michael" became Hixie.
  300. # [02:54] * Quits: svl (n=me@ip565744a7.direct-adsl.nl) ("And back he spurred like a madman, shrieking a curse to the sky.")
  301. # [02:54] <Lachy> Hixie, I was wondering why the article implied you no longer had a blog.
  302. # [03:06] <Philip`> kevogod: The keys are like right next to each other
  303. # [03:06] <kevogod> Philip`, True, I can see how the mistake was made.
  304. # [03:09] * Quits: andersca (n=andersca@nat/apple/x-b0d6d6e6d81f9058) ("a")
  305. # [03:20] * Joins: MacDome (n=eric@c-24-130-11-246.hsd1.ca.comcast.net)
  306. # [03:30] * Quits: Camaban (n=alee@85-211-222-146.dyn.gotadsl.co.uk) ("Ex-Chat")
  307. # [03:39] * Quits: syp_ (n=syp@lasigpc9.epfl.ch) (anthony.freenode.net irc.freenode.net)
  308. # [03:39] * Quits: weinig (n=weinig@17.203.15.172) (anthony.freenode.net irc.freenode.net)
  309. # [03:39] * Quits: gsnedders (n=gsnedder@host217-44-37-113.range217-44.btcentralplus.com) (anthony.freenode.net irc.freenode.net)
  310. # [03:39] * Quits: jruderman (n=jruderma@c-67-180-174-213.hsd1.ca.comcast.net) (anthony.freenode.net irc.freenode.net)
  311. # [03:39] * Quits: deltab (n=deltab@82-36-30-34.cable.ubr02.smal.blueyonder.co.uk) (anthony.freenode.net irc.freenode.net)
  312. # [03:39] * Quits: jgraham_ (n=jgraham@81-86-215-216.dsl.pipex.com) (anthony.freenode.net irc.freenode.net)
  313. # [03:39] * Quits: takkaria (n=takkaria@isparp.co.uk) (anthony.freenode.net irc.freenode.net)
  314. # [03:39] * Quits: bradee-oh (n=bradeeoh@web7.webfaction.com) (anthony.freenode.net irc.freenode.net)
  315. # [03:39] * Quits: mcarter (n=mcarter@pool-72-87-174-185.plspca.dsl-w.verizon.net) (anthony.freenode.net irc.freenode.net)
  316. # [03:39] * Quits: YaaL (i=yaal@hell.pl) (anthony.freenode.net irc.freenode.net)
  317. # [03:39] * Quits: gavin (n=gavin@firefox/developer/gavin) (anthony.freenode.net irc.freenode.net)
  318. # [03:39] * Quits: hsivonen (n=hsivonen@kekkonen.cs.hut.fi) (anthony.freenode.net irc.freenode.net)
  319. # [03:39] * Quits: jeremyb (n=jeremy@unaffiliated/jeremyb) (anthony.freenode.net irc.freenode.net)
  320. # [03:39] * Quits: MacDome (n=eric@c-24-130-11-246.hsd1.ca.comcast.net) (anthony.freenode.net irc.freenode.net)
  321. # [03:39] * Quits: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu) (anthony.freenode.net irc.freenode.net)
  322. # [03:39] * Quits: jmb (n=jmb@login.ecs.soton.ac.uk) (anthony.freenode.net irc.freenode.net)
  323. # [03:39] * Quits: alp (n=alp@host-84-9-46-160.dslgb.com) (anthony.freenode.net irc.freenode.net)
  324. # [03:39] * Quits: starjive (i=beos@213-66-217-32-no30.tbcn.telia.com) (anthony.freenode.net irc.freenode.net)
  325. # [03:39] * Quits: wakaba (n=w@180.165.210.220.dy.bbexcite.jp) (anthony.freenode.net irc.freenode.net)
  326. # [03:39] * Quits: Lachy (n=Lachlan@85.196.122.246) (anthony.freenode.net irc.freenode.net)
  327. # [03:39] * Quits: heycam (n=cam@124-168-117-1.dyn.iinet.net.au) (anthony.freenode.net irc.freenode.net)
  328. # [03:39] * Quits: sverrej (n=sverrej@89.10.27.86) (anthony.freenode.net irc.freenode.net)
  329. # [03:39] * Quits: fearphage (n=fearphag@xbmc/user/fearphage) (anthony.freenode.net irc.freenode.net)
  330. # [03:39] * Quits: didymos (i=jho@rapwap.razor.dk) (anthony.freenode.net irc.freenode.net)
  331. # [03:39] * Quits: inimino (n=inimino@atekomi.inimino.org) (anthony.freenode.net irc.freenode.net)
  332. # [03:39] * Quits: hendry (n=hendry@nox.vm.bytemark.co.uk) (anthony.freenode.net irc.freenode.net)
  333. # [03:39] * Quits: kevogod (n=Kevin@network185-253.wctc.net) (anthony.freenode.net irc.freenode.net)
  334. # [03:39] * Quits: dbaron (n=dbaron@corp-241.mountainview.mozilla.com) (anthony.freenode.net irc.freenode.net)
  335. # [03:39] * Quits: mahound (n=mahound@87-196-11-150.net.novis.pt) (anthony.freenode.net irc.freenode.net)
  336. # [03:39] * Quits: mpt (n=mpt@canonical/launchpad/mpt) (anthony.freenode.net irc.freenode.net)
  337. # [03:39] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net) (anthony.freenode.net irc.freenode.net)
  338. # [03:39] * Quits: Kuruma (n=Kuruman@h123-176-107-050.catv01.catv-yokohama.ne.jp) (anthony.freenode.net irc.freenode.net)
  339. # [03:39] * Quits: Hixie (i=ianh@trivini.no) (anthony.freenode.net irc.freenode.net)
  340. # [03:39] * Quits: tomg (n=ntom@unable.to.resolve.host.name) (anthony.freenode.net irc.freenode.net)
  341. # [03:39] * Quits: gavin_ (n=gavin@firefox/developer/gavin) (anthony.freenode.net irc.freenode.net)
  342. # [03:39] * Quits: ianloic (i=yakk@glub.dreamhostps.com) (anthony.freenode.net irc.freenode.net)
  343. # [03:39] * Quits: Yudai (n=Yudai@p9258c3.kngwnt01.ap.so-net.ne.jp) (anthony.freenode.net irc.freenode.net)
  344. # [03:39] * Quits: doublec (n=ChrisDou@li5-223.members.linode.com) (anthony.freenode.net irc.freenode.net)
  345. # [03:39] * Quits: JohnResig (n=jresig@c-76-118-158-44.hsd1.ma.comcast.net) (anthony.freenode.net irc.freenode.net)
  346. # [03:39] * Quits: MikeSmith (n=MikeSmit@58.157.21.205) (anthony.freenode.net irc.freenode.net)
  347. # [03:39] * Quits: bzed (n=bzed@debian/developer/bzed) (anthony.freenode.net irc.freenode.net)
  348. # [03:39] * Joins: shepazu (n=schepers@124.226.115.11)
  349. # [03:39] * Joins: MacDome (n=eric@c-24-130-11-246.hsd1.ca.comcast.net)
  350. # [03:39] * Joins: kevogod (n=Kevin@network185-253.wctc.net)
  351. # [03:39] * Joins: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu)
  352. # [03:39] * Joins: dbaron (n=dbaron@corp-241.mountainview.mozilla.com)
  353. # [03:39] * Joins: weinig (n=weinig@17.203.15.172)
  354. # [03:39] * Joins: mahound (n=mahound@87-196-11-150.net.novis.pt)
  355. # [03:39] * Joins: gsnedders (n=gsnedder@host217-44-37-113.range217-44.btcentralplus.com)
  356. # [03:39] * Joins: mcarter (n=mcarter@pool-72-87-174-185.plspca.dsl-w.verizon.net)
  357. # [03:39] * Joins: mpt (n=mpt@canonical/launchpad/mpt)
  358. # [03:39] * Joins: Lachy (n=Lachlan@85.196.122.246)
  359. # [03:39] * Joins: jmb (n=jmb@login.ecs.soton.ac.uk)
  360. # [03:39] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  361. # [03:39] * Joins: YaaL (i=yaal@hell.pl)
  362. # [03:39] * Joins: heycam (n=cam@124-168-117-1.dyn.iinet.net.au)
  363. # [03:39] * Joins: syp_ (n=syp@lasigpc9.epfl.ch)
  364. # [03:39] * Joins: jruderman (n=jruderma@c-67-180-174-213.hsd1.ca.comcast.net)
  365. # [03:39] * Joins: deltab (n=deltab@82-36-30-34.cable.ubr02.smal.blueyonder.co.uk)
  366. # [03:39] * Joins: alp (n=alp@host-84-9-46-160.dslgb.com)
  367. # [03:39] * Joins: Kuruma (n=Kuruman@h123-176-107-050.catv01.catv-yokohama.ne.jp)
  368. # [03:39] * Joins: sverrej (n=sverrej@89.10.27.86)
  369. # [03:39] * Joins: JohnResig (n=jresig@c-76-118-158-44.hsd1.ma.comcast.net)
  370. # [03:39] * Joins: MikeSmith (n=MikeSmit@58.157.21.205)
  371. # [03:39] * Joins: Hixie (i=ianh@trivini.no)
  372. # [03:39] * Joins: jgraham_ (n=jgraham@81-86-215-216.dsl.pipex.com)
  373. # [03:39] * Joins: takkaria (n=takkaria@isparp.co.uk)
  374. # [03:39] * Joins: bradee-oh (n=bradeeoh@web7.webfaction.com)
  375. # [03:39] * Joins: fearphage (n=fearphag@xbmc/user/fearphage)
  376. # [03:39] * Joins: tomg (n=ntom@unable.to.resolve.host.name)
  377. # [03:39] * Joins: bzed (n=bzed@debian/developer/bzed)
  378. # [03:39] * Joins: gavin (n=gavin@firefox/developer/gavin)
  379. # [03:39] * Joins: gavin_ (n=gavin@firefox/developer/gavin)
  380. # [03:39] * Joins: ianloic (i=yakk@glub.dreamhostps.com)
  381. # [03:39] * Joins: didymos (i=jho@rapwap.razor.dk)
  382. # [03:39] * Joins: starjive (i=beos@213-66-217-32-no30.tbcn.telia.com)
  383. # [03:39] * Joins: inimino (n=inimino@atekomi.inimino.org)
  384. # [03:39] * Joins: wakaba (n=w@180.165.210.220.dy.bbexcite.jp)
  385. # [03:39] * Joins: hsivonen (n=hsivonen@kekkonen.cs.hut.fi)
  386. # [03:39] * Joins: Yudai (n=Yudai@p9258c3.kngwnt01.ap.so-net.ne.jp)
  387. # [03:39] * Joins: jeremyb (n=jeremy@unaffiliated/jeremyb)
  388. # [03:39] * Joins: hendry (n=hendry@nox.vm.bytemark.co.uk)
  389. # [03:39] * Joins: doublec (n=ChrisDou@li5-223.members.linode.com)
  390. # [03:50] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net) (Read error: 104 (Connection reset by peer))
  391. # [03:50] * Quits: heycam (n=cam@124-168-117-1.dyn.iinet.net.au) ("bye")
  392. # [03:50] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  393. # [03:54] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net) (Read error: 104 (Connection reset by peer))
  394. # [03:56] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  395. # [04:04] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  396. # [04:04] * Quits: dbaron (n=dbaron@corp-241.mountainview.mozilla.com) ("8403864 bytes have been tenured, next gc will be global.")
  397. # [04:04] * Quits: sverrej (n=sverrej@89.10.27.86) (Read error: 110 (Connection timed out))
  398. # [04:08] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  399. # [04:38] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net) (Read error: 104 (Connection reset by peer))
  400. # [04:41] * Quits: shepazu (n=schepers@124.226.115.11) ("Core Breach")
  401. # [04:43] * Joins: roc (n=roc@121-72-173-175.dsl.telstraclear.net)
  402. # [04:47] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  403. # [04:52] * Joins: heycam (n=cam@clm-laptop.infotech.monash.edu.au)
  404. # [04:55] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net) (Read error: 104 (Connection reset by peer))
  405. # [04:55] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  406. # [05:03] * Quits: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu)
  407. # [05:07] * Joins: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu)
  408. # [05:08] * Quits: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu) (Client Quit)
  409. # [05:09] * Joins: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu)
  410. # [05:10] * Joins: mahound_ (n=mahound@87-196-74-174.net.novis.pt)
  411. # [05:10] * Quits: kevogod (n=Kevin@network185-253.wctc.net) ("Leaving")
  412. # [05:13] * Quits: jwalden (n=waldo@RANDOM-THREE-O-EIGHT.MIT.EDU) (Remote closed the connection)
  413. # [05:15] * Joins: tantek (n=tantek@70-13-31-67.area2.spcsdns.net)
  414. # [05:20] * Quits: tantek (n=tantek@70-13-31-67.area2.spcsdns.net) (Client Quit)
  415. # [05:29] * Quits: mahound (n=mahound@87-196-11-150.net.novis.pt) (Read error: 110 (Connection timed out))
  416. # [05:50] * Quits: MacDome (n=eric@c-24-130-11-246.hsd1.ca.comcast.net)
  417. # [06:13] * Quits: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu)
  418. # [06:17] * Joins: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu)
  419. # [06:24] * Joins: heyadayo2 (n=mcarter@pool-72-87-174-120.plspca.dsl-w.verizon.net)
  420. # [06:26] * Quits: mcarter (n=mcarter@pool-72-87-174-185.plspca.dsl-w.verizon.net) (Read error: 110 (Connection timed out))
  421. # [06:36] * Joins: Facedown (n=HELLO@c-68-48-58-38.hsd1.md.comcast.net)
  422. # [06:36] <Facedown> positioned elements (other than static) have a higher stacking order than floated non-positioned elements (z-index not explicitly set) , dont they?
  423. # [06:49] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  424. # [06:50] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  425. # [07:15] <roc> yes
  426. # [07:17] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  427. # [07:21] <Facedown> have you run into any IE specific issues where IE does not honor the rightful stacking order, roc?
  428. # [07:21] <roc> IE treats z-index:auto as z-index:0 IIRC
  429. # [07:21] <roc> not sure about any other stacking order bugs
  430. # [07:22] <roc> I hardly ever use IE :-)
  431. # [07:22] <Facedown> no self proclaimed web dev would ever personally use it.. but clients..
  432. # [07:22] <roc> I work on Firefox. I don't have clients :-)
  433. # [07:23] <Facedown> heh
  434. # [07:36] * Quits: weinig (n=weinig@17.203.15.172)
  435. # [07:38] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  436. # [07:43] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  437. # [07:46] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  438. # [08:18] * Quits: roc (n=roc@121-72-173-175.dsl.telstraclear.net)
  439. # [08:44] * Joins: myakura (n=myakura@p1215-ipbf3008marunouchi.tokyo.ocn.ne.jp)
  440. # [08:51] * Joins: roc (n=roc@121-72-173-175.dsl.telstraclear.net)
  441. # [08:58] * Quits: heycam (n=cam@clm-laptop.infotech.monash.edu.au) ("bye")
  442. # [09:02] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  443. # [09:07] * Quits: roc (n=roc@121-72-173-175.dsl.telstraclear.net)
  444. # [09:13] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  445. # [09:13] * Joins: heycam (n=cam@124-168-117-1.dyn.iinet.net.au)
  446. # [10:07] * Joins: roc (n=roc@121-72-173-175.dsl.telstraclear.net)
  447. # [10:15] * Joins: myakura_ (n=myakura@p1215-ipbf3008marunouchi.tokyo.ocn.ne.jp)
  448. # [10:22] <hsivonen> I wish we could magically make CRLF disappear
  449. # [10:23] * Joins: qwert666 (n=qwert666@acdf242.neoplus.adsl.tpnet.pl)
  450. # [10:30] <Facedown> what's CRLF?
  451. # [10:30] <Facedown> \r\n ?
  452. # [10:31] * Joins: jgraham (n=james@81-86-215-216.dsl.pipex.com)
  453. # [10:31] <Facedown> carriage return line feed?
  454. # [10:31] * Quits: myakura (n=myakura@p1215-ipbf3008marunouchi.tokyo.ocn.ne.jp) (Read error: 110 (Connection timed out))
  455. # [10:32] * Quits: jgraham (n=james@81-86-215-216.dsl.pipex.com) (Client Quit)
  456. # [10:32] * Joins: ROBOd (n=robod@89.122.216.38)
  457. # [10:38] <hsivonen> Facedown: yes. It's evil.
  458. # [10:42] * Joins: tndH_ (i=Rob@adsl-87-102-36-33.karoo.KCOM.COM)
  459. # [10:42] * tndH_ is now known as tndH
  460. # [10:45] * Joins: fear\phage (n=fearphag@cpe-66-68-52-63.austin.res.rr.com)
  461. # [10:47] * Quits: fear\phage (n=fearphag@cpe-66-68-52-63.austin.res.rr.com) (Client Quit)
  462. # [11:01] * Quits: fearphage (n=fearphag@xbmc/user/fearphage) (Read error: 110 (Connection timed out))
  463. # [11:06] * Joins: tndH_ (i=Rob@adsl-87-102-77-138.karoo.KCOM.COM)
  464. # [11:07] * Joins: jgraham (n=james@81-86-215-216.dsl.pipex.com)
  465. # [11:20] <jgraham_> Sigh. Nice of Daniel to post such a well argued, non-inflammatory addition to the alt thread
  466. # [11:23] * Quits: tndH (i=Rob@adsl-87-102-36-33.karoo.KCOM.COM) (Read error: 110 (Connection timed out))
  467. # [11:27] * Quits: jgraham (n=james@81-86-215-216.dsl.pipex.com) ("I get eaten by the worms")
  468. # [11:39] * Joins: MacDome (n=eric@c-24-130-11-246.hsd1.ca.comcast.net)
  469. # [11:40] * Quits: MacDome (n=eric@c-24-130-11-246.hsd1.ca.comcast.net) (Remote closed the connection)
  470. # [11:40] * Joins: MacDome (n=eric@c-24-130-11-246.hsd1.ca.comcast.net)
  471. # [11:40] <Lachy> oh, yeah, cause arguments like "making alt optional in HTML 5 is ridiculous" is exactly the kind of short and to the point arguments we need.
  472. # [11:48] -myakura_:#whatwg- wonders what wai said to the early html4 wd, in which alt was #IMPLIED http://www.w3.org/TR/WD-html40-970708/struct/includes.html#h-7.7.7
  473. # [11:52] * Joins: sverrej (n=sverrej@89.10.27.86)
  474. # [11:55] * jgraham_ ponders the recursive nature of making non-conformance conforming
  475. # [12:02] * Joins: svl (n=me@ip565744a7.direct-adsl.nl)
  476. # [12:06] * Joins: tantek (n=tantek@c-24-19-2-124.hsd1.mn.comcast.net)
  477. # [12:08] * Quits: MacDome (n=eric@c-24-130-11-246.hsd1.ca.comcast.net)
  478. # [12:10] * Joins: othermaciej_ (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  479. # [12:10] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net) (Read error: 104 (Connection reset by peer))
  480. # [12:23] <hsivonen> hmm. perhaps I should just do a preflight on each buffer to get rid of CRLF instead of making the rest of the tokenizer really complex in order to avoid the preflight
  481. # [12:24] <hsivonen> I don't usually admit to hating things, so I seriously dislike CRLF
  482. # [12:38] <jgraham_> hsivonen: IIRC we strip out CRLF when we buffer the data
  483. # [12:39] <jgraham_> (and have a flag to indicate trailing CR in case CRLF is split over two buffers)
  484. # [12:50] * Quits: sverrej (n=sverrej@89.10.27.86) (Read error: 110 (Connection timed out))
  485. # [12:56] * Joins: sverrej (n=sverrej@89.10.27.86)
  486. # [12:59] * Quits: jruderman (n=jruderma@c-67-180-174-213.hsd1.ca.comcast.net) (anthony.freenode.net irc.freenode.net)
  487. # [12:59] * Quits: gsnedders (n=gsnedder@host217-44-37-113.range217-44.btcentralplus.com) (anthony.freenode.net irc.freenode.net)
  488. # [13:00] * Joins: gsnedders (n=gsnedder@host217-44-37-113.range217-44.btcentralplus.com)
  489. # [13:00] * Joins: jruderman (n=jruderma@c-67-180-174-213.hsd1.ca.comcast.net)
  490. # [13:06] * tndH_ is now known as tndH
  491. # [13:34] * Quits: svl (n=me@ip565744a7.direct-adsl.nl) ("And back he spurred like a madman, shrieking a curse to the sky.")
  492. # [13:39] * Quits: mahound_ (n=mahound@87-196-74-174.net.novis.pt) ("Leaving")
  493. # [13:40] * Joins: webben (n=benh@81.168.10.233)
  494. # [14:16] * Joins: jgraham (n=james@81-86-215-216.dsl.pipex.com)
  495. # [14:40] * Joins: hasather (n=hasather@90-231-107-133-no62.tbcn.telia.com)
  496. # [15:33] * Quits: heyadayo2 (n=mcarter@pool-72-87-174-120.plspca.dsl-w.verizon.net) (Read error: 110 (Connection timed out))
  497. # [15:33] * Joins: heyadayo2 (n=mcarter@pool-72-87-174-238.plspca.dsl-w.verizon.net)
  498. # [15:49] * Quits: roc (n=roc@121-72-173-175.dsl.telstraclear.net)
  499. # [15:53] * Quits: othermaciej_ (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  500. # [16:26] * Joins: maikmerten (n=maikmert@Lbd88.l.pppool.de)
  501. # [16:28] * Joins: aroben (n=adamrobe@76.111.160.14)
  502. # [17:07] * Quits: maikmerten (n=maikmert@Lbd88.l.pppool.de) ("Leaving")
  503. # [17:09] * Joins: KevinMarks (n=KevinMar@c-98-207-134-151.hsd1.ca.comcast.net)
  504. # [18:20] * Joins: BenMillard (i=cerbera@cpc1-flee1-0-0-cust285.glfd.cable.ntl.com)
  505. # [18:22] * Joins: svl (n=me@ip565744a7.direct-adsl.nl)
  506. # [18:23] * Quits: svl (n=me@ip565744a7.direct-adsl.nl) (Client Quit)
  507. # [18:25] * Joins: svl (n=me@ip565744a7.direct-adsl.nl)
  508. # [18:27] * Quits: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu)
  509. # [18:32] * Quits: svl (n=me@ip565744a7.direct-adsl.nl) ("And back he spurred like a madman, shrieking a curse to the sky.")
  510. # [18:35] * Joins: jacobolus (n=jacobolu@dhcp-0000036913-b5-5e.client.fas.harvard.edu)
  511. # [18:43] * Joins: csarven (n=csarven@dhcp-0-12-17-b8-7b-53.cpe.quickclic.net)
  512. # [18:49] * Quits: psa (n=yomode@71.93.19.66) (Remote closed the connection)
  513. # [19:10] * Quits: aroben (n=adamrobe@unaffiliated/aroben)
  514. # [19:44] * Quits: myakura_ (n=myakura@p1215-ipbf3008marunouchi.tokyo.ocn.ne.jp) ("Leaving...")
  515. # [19:44] * Parts: BenMillard (i=cerbera@cpc1-flee1-0-0-cust285.glfd.cable.ntl.com)
  516. # [19:45] * Quits: csarven (n=csarven@dhcp-0-12-17-b8-7b-53.cpe.quickclic.net) (Read error: 110 (Connection timed out))
  517. # [19:45] * Joins: virtuelv (n=virtuelv@46.80-203-100.nextgentel.com)
  518. # [19:48] <jgraham_> So Nvu/KomoZer adds alt="" even when you specify "Don't add alternate text"
  519. # [19:50] <jgraham_> And adds alt="image filename" if you drag and drop an image file in
  520. # [19:50] <jgraham_> s/KomoZer/KompoZer/
  521. # [19:50] <jgraham_> Which clearly sucks
  522. # [20:06] <Philip`> Maybe it'd be vaguely informative to correlate alt usage with <meta name=generator> values
  523. # [20:08] * Joins: qwert666_ (n=qwert666@acan160.neoplus.adsl.tpnet.pl)
  524. # [20:14] * Parts: hasather (n=hasather@90-231-107-133-no62.tbcn.telia.com)
  525. # [20:15] * Joins: hasather (n=hasather@90-231-107-133-no62.tbcn.telia.com)
  526. # [20:25] * Quits: qwert666 (n=qwert666@acdf242.neoplus.adsl.tpnet.pl) (Read error: 110 (Connection timed out))
  527. # [20:28] * Joins: aroben (n=adamrobe@76.111.160.14)
  528. # [20:35] <Facedown> what's the best ftp client anyone here has ever used? (on windows preferably)? filezilla 3 is a memory hog like firefox.. slow as shit
  529. # [20:40] <Philip`> I use Krusader (on Linux)
  530. # [20:48] * Quits: virtuelv (n=virtuelv@46.80-203-100.nextgentel.com) ("Ex-Chat")
  531. # [20:58] * Quits: tantek (n=tantek@c-24-19-2-124.hsd1.mn.comcast.net)
  532. # [21:23] * Joins: jruderman_ (n=jruderma@c-67-180-174-213.hsd1.ca.comcast.net)
  533. # [21:23] * Quits: jruderman (n=jruderma@c-67-180-174-213.hsd1.ca.comcast.net) (Read error: 104 (Connection reset by peer))
  534. # [21:30] * Joins: weinig (n=weinig@17.203.15.172)
  535. # [21:34] * Joins: tantek (n=tantek@99-203-172-171.area2.spcsdns.net)
  536. # [21:34] * Joins: MacDome (n=eric@c-24-130-11-246.hsd1.ca.comcast.net)
  537. # [21:35] * Quits: tndH (i=Rob@adsl-87-102-77-138.karoo.KCOM.COM) ("ChatZilla 0.9.81-rdmsoft [XULRunner 1.8.0.9/2006120508]")
  538. # [21:37] * Quits: tantek (n=tantek@99-203-172-171.area2.spcsdns.net) (Client Quit)
  539. # [21:47] * Quits: MacDome (n=eric@c-24-130-11-246.hsd1.ca.comcast.net)
  540. # [21:48] * Joins: tantek (n=tantek@68-25-238-17.area2.spcsdns.net)
  541. # [21:51] * Joins: MacDome (n=eric@c-24-130-11-246.hsd1.ca.comcast.net)
  542. # [21:59] <Hixie> i wonder why the alt="" people aren't screaming about <object></object>
  543. # [22:00] <Hixie> which is even worse since it doesn't distinguish between unknown important image and decorative image
  544. # [22:00] <Philip`> Probably because nobody uses <object> decoratively
  545. # [22:01] <jgraham_> Probably because nobody uses <object> for images
  546. # [22:01] <Philip`> and theoretical problems aren't worth worrying about
  547. # [22:01] <Hixie> well then shouldn't they be arguing that <object> must never be empty?
  548. # [22:01] <Hixie> what i find interesting is that the longer this argument goes on, the more people are coming out and defending what the spec says
  549. # [22:01] <Philip`> jgraham_: I use <object> for images, at least twice in my life :-)
  550. # [22:01] <Philip`> although actually one of those was purely decorative
  551. # [22:02] <jgraham_> OK "nobody" for large values of "nobody"
  552. # [22:03] <Philip`> Hixie: That's because people flock to authority, which the spec provides, rather than considering the technical arguments ;-)
  553. # [22:04] <Lachy> I used <object> for an image once, and I put an <img> inside it as fallback :-)
  554. # [22:04] <Philip`> Lachy: And an alt on the image as fallback?
  555. # [22:04] <Lachy> yes
  556. # [22:04] <Hixie> Philip`: if anyone is being an authority here it's the self-proclaimed accessibility experts who announce their opinions as unquestionable
  557. # [22:04] <jgraham_> I am quite tempted to say why I think that the Nvu UI encourages bad alt text and required alt encourages Nvu-like UI. But if I do that it will be taken badly...
  558. # [22:05] <Philip`> The logo on http://canvex.lazyilluminati.com/ does <h1><object><img alt></...>
  559. # [22:05] <Philip`> which is hopefully sane
  560. # [22:05] <Lachy> IMHO, Nvu is a really bad editor
  561. # [22:05] <Hixie> jgraham_: just ask Philip` for a list of pages that have nvu's signature, and do a study
  562. # [22:06] <jgraham_> Hixie: AFAICT Nvu doesn't have a signature
  563. # [22:06] <jgraham_> (at least the version that comes with Ubuntu)
  564. # [22:06] <Hixie> jgraham_: and compare it to a list of pages that have the signature of tools that make it optional and don't complain and see what they're like
  565. # [22:06] <Hixie> actually this would be an interesting study
  566. # [22:06] <jgraham_> Hixie: I agree this would be an interesting study
  567. # [22:06] <Hixie> i should get us a list of pages with various detailed generator strings
  568. # [22:07] * Joins: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net)
  569. # [22:07] <Hixie> someone remind me later today and i'll see about setting that up
  570. # [22:07] <Hixie> gotta go now though
  571. # [22:07] <Philip`> http://philip.html5.org/data/underline-generators.txt was my last attempt at looking at generators
  572. # [22:07] <Lachy> Hixie, at what time do you want to be reminded?
  573. # [22:08] <Hixie> Lachy: now + 8 hours
  574. # [22:08] <Lachy> OK, I'll be asleep by then. Someone else will have to do it
  575. # [22:09] <Philip`> Google Web History says 5am is not my time of greatest awakeness
  576. # [22:09] <Hixie> well remind me in 2 hours, i'll be gone then and will see the reminder when i get back :-D
  577. # [22:10] <Hixie> bbl :-)
  578. # [22:10] <Philip`> Looking for (?i)generator.*nvu I see one <meta name="GENERATOR" content="NVu"> and one <meta name="generator" content="nvu"> and one <meta name="generator" content="Nvu v1.0">
  579. # [22:11] * Quits: aroben (n=adamrobe@unaffiliated/aroben)
  580. # [22:12] <Philip`> I see more pages with <comment title=" ... " xmlns="http://disruptive-innovations.com/zoo/nvu">, which presumably come from some form of interaction with Nvu
  581. # [22:13] <Philip`> ...where "more" means 8
  582. # [22:15] * Quits: MacDome (n=eric@c-24-130-11-246.hsd1.ca.comcast.net)
  583. # [22:16] <Philip`> Hixie: The problem with that kind of study is you have no way of knowing whether use of a particular authoring tool causes bad alt text, rather than some other external influence causing both, so you can't conclude anything
  584. # [22:17] <Philip`> e.g. maybe people who choose Nvu are more technically competent than those who choose FrontPage, and they'll do better alt text regardless of the editor's UI
  585. # [22:18] <jgraham_> Philip`: Yeah there are systematic biases in all surveys like this
  586. # [22:18] <jgraham_> You just have to try and understand them
  587. # [22:18] <jgraham_> rather than conclude that everything is pointless
  588. # [22:18] <Philip`> You should try to eliminate them
  589. # [22:18] <Philip`> and it's only pointless if you find you can't do that :-)
  590. # [22:19] <jgraham_> Also pasting <comment title=" ... " xmlns="http://disruptive-innovations.com/zoo/nvu">foo</comment> into the source view of KompoZer and then switching back to normal view seems to lock the application up with 100% CPU
  591. # [22:19] <Philip`> Just because it's not possible to do a good large-scale study, that doesn't mean you should do a bad one and think its conclusions have any relevance to reality
  592. # [22:20] <jgraham_> Philip`: If you have an idea of what the biases are then you can determine whether they are likely to affect the outcome in the way that you observe
  593. # [22:21] <jgraham_> e.g. if you think that all Nvu users are more competent than Frontpage users but find that Nvu pages have worse alt text, the effect is most likely real
  594. # [22:22] <jgraham_> rather than an artifact of the people using the software
  595. # [22:22] <Philip`> If that happened, it probably just means I didn't have a good idea of the biases
  596. # [22:22] <Philip`> (If it didn't happen, I still wouldn't think I had a good idea of the biases)
  597. # [22:23] * Quits: tantek (n=tantek@68-25-238-17.area2.spcsdns.net)
  598. # [22:23] <Philip`> Maybe Nvu users are less competent than FrontPage users, or maybe there's one extremely prolific Nvu-using author who writes really bad alt text
  599. # [22:23] <jgraham_> Philip`: You don't make any progress by not doing things because you can't do them perfectly. Of course you should report any problems your study might have
  600. # [22:25] <Philip`> jgraham_: Indeed, but 'not quite perfect' and 'so far from perfect that the results are meaningless' are not the same
  601. # [22:26] <jgraham_> Philip`: Of course :) I don't think this study would necessarily produce meaningless results though
  602. # [22:26] * Joins: aroben (n=adamrobe@76.111.160.14)
  603. # [22:26] <Philip`> So how could we be sure it was not going to produce meaningless results? :-)
  604. # [22:27] <jgraham_> We couldn't — at least for a strict definition of "sure"
  605. # [22:27] <Philip`> (preferably without first collecting a load of data and then checking whether it corresponds to our preconceived ideas of what the correct results should be :-) )
  606. # [22:27] <Philip`> s/sure/reasonably confident/
  607. # [22:27] <Philip`> s/reasonably confident/sufficiently confident that we could make language design decisions based on it/
  608. # [22:27] <Facedown> Philip` - <h1><object><img> ? hrm
  609. # [22:28] <jgraham_> But we could consider all the thinks that might be wrong with it and work out whether any effects should average out over the sample or have a systematic effect
  610. # [22:28] <Facedown> I usually dont put my logos in h1 since i don't think they're real headings
  611. # [22:28] <Facedown> <div id="logo"><img></div> or just <img id="logo"> usually does it..
  612. # [22:28] <jgraham_> We then decide if the systematic effect will be big enough to worry about
  613. # [22:28] <Philip`> Facedown: A non-visual UA that replaces the image with its alt text ought to use heading formatting for the alt text
  614. # [22:29] <jgraham_> If we're not sure, we do the study, collect the results and see if the significant of the result is greater than our estimate of the systematic effects
  615. # [22:29] <Facedown> ? to say the logo out louder?
  616. # [22:29] <Facedown> isnt that what aural styles are for?
  617. # [22:29] <Facedown> hehe
  618. # [22:30] <Philip`> Facedown: It could be a non-graphical text browser, rather than an aural one
  619. # [22:30] <Philip`> Facedown: and I'd rather aural browsers used the default <h1> aural styles, rather than some which I've made up myself and haven't been able to test
  620. # [22:30] <jgraham_> (also if we were doing the analysis in a proper Bayesian sense, our preconceived idea of what the result should be is important)
  621. # [22:30] <Facedown> My eyes usually go on the main heading in a newspaper rather than look at the logo
  622. # [22:31] <Philip`> Facedown: In my case, the logo is the main heading (since it's just fancy text)
  623. # [22:33] <Philip`> jgraham: So, how do we quantify the systematic biases in this case?
  624. # [22:34] <Philip`> (Oops, I've got to go out and find food)
  625. # [22:34] * jgraham suggests eating the pigeons
  626. # [22:35] <jgraham> (since you sound o hunter-gather about it ;)
  627. # [22:35] <jgraham> s/o/so/
  628. # [22:36] <Philip`> jgraham: I've not seen any pigeons around where I live :-(
  629. # [22:36] <Philip`> Quite a few cats wander around our garden, though
  630. # [22:38] <jgraham> Apparently carnivores taste quite bad
  631. # [22:39] * Quits: aroben (n=adamrobe@unaffiliated/aroben)
  632. # [22:54] * Quits: KevinMarks (n=KevinMar@c-98-207-134-151.hsd1.ca.comcast.net) ("The computer fell asleep")
  633. # [22:59] <Philip`> Hmm, I did manage to sneak up on a cat, but I didn't manage to actually see it before it had already decided to run away
  634. # [22:59] <Philip`> and my spear arm wasn't quick enough
  635. # [23:03] * Joins: Camaban (n=alee@85-211-222-146.dyn.gotadsl.co.uk)
  636. # [23:11] * Quits: jgraham (n=james@81-86-215-216.dsl.pipex.com) ("I get eaten by the worms")
  637. # [23:16] * Quits: ROBOd (n=robod@89.122.216.38) ("http://www.robodesign.ro")
  638. # [23:22] * Joins: aroben (n=adamrobe@76.111.160.14)
  639. # [23:47] * Joins: csarven (n=csarven@dhcp-0-12-17-b8-7b-53.cpe.quickclic.net)
  640. # [23:47] * Quits: othermaciej (n=mjs@dsl081-048-145.sfo1.dsl.speakeasy.net) (Remote closed the connection)
  641. # [23:51] * weinig is now known as weinig|brb
  642. # [23:53] * Quits: MikeSmith (n=MikeSmit@58.157.21.205) ("Less talk, more pimp walk.")
  643. # [23:54] * Joins: jwalden (n=waldo@STRATTON-FIVE-SIXTY-ONE.MIT.EDU)
  644. # [23:55] * weinig|brb is now known as weinig
  645. # Session Close: Sun May 04 00:00:00 2008

The end :)