| 07:14 | <hsivonen> | How close is WebKit-gtk to WebKit-Mac? should I test in Midori/Epiphany or really move to my Mac Mini to test? |
| 07:18 | <SimonSapin> | hsivonen: I suppose it depends on what you’re testing |
| 07:20 | <hsivonen> | SimonSapin: DOMContentLoaded, <script defer>, readyState |
| 07:20 | <hsivonen> | all supposed to live in WebKit |
| 07:20 | <hsivonen> | itself |
| 07:20 | <hsivonen> | rather than port code |
| 07:20 | <SimonSapin> | yes, that’s my limited understanding of webkit ports |
| 07:20 | <hsivonen> | findings so far: Gecko is wrong for <script defer> per spec |
| 07:21 | <hsivonen> | Presto and Blink don't interop on when readyState changes relative to <script defer> |
| 07:23 | <hsivonen> | unsurprisingly, Safari is like Chrome, still |
| 07:24 | <hsivonen> | waiting for Windows Update to give me a fully-patched IE... |
| 07:26 | <hsivonen> | I wonder how Hixie came up with the rules for <script defer> relative to DOMContentLoaded. |
| 07:26 | <zcorpan> | hsivonen: i think presto doesn't support defer |
| 07:26 | <hsivonen> | zcorpan: ah ok |
| 07:27 | <hsivonen> | at the time, IE didn't support DOMContentLoaded |
| 07:31 | <hsivonen> | Does Chrome OS run xorg still? |
| 07:52 | <jgraham> | hsivonen: Yeah, don't worry too much about presto for anything related to script scheduling or document loading |
| 07:52 | <jgraham> | It was all scheduled for a rewrite |
| 08:06 | <hsivonen> | So it looks like it was indeed I who broke <script defer> in Gecko |
| 08:06 | <hsivonen> | and someone noticed already in 2010 |
| 08:06 | <hsivonen> | but it took until now to someone complain enough for it to actually register |
| 08:07 | <hsivonen> | makes one wonder about the utility of <script defer>, though, that this didn't become a big deal back in 2010 |
| 08:08 | <hsivonen> | hmm. I wonder if <script defer> has ever worked right in XSLT in Gecko, though |
| 08:09 | <jgraham> | OK, script defer + XSLT is pretty much the definition of niche case |
| 08:09 | <jgraham> | s/case/feature/ |
| 08:09 | <hsivonen> | Thanks to the wonders of XSLT, there's always a 3rd case after HTML and XML |
| 08:10 | <zcorpan> | can we disable defer in the xslt case? |
| 08:10 | <hsivonen> | zcorpan: it would be more work in the Trident/WebKit/Blink XSLT architecture, so probably won't fly |
| 08:11 | <zcorpan> | ah yeah |
| 08:11 | <jgraham> | I have a feeling that in presto XSLT support was implemented to not create a third case, I think the output just got fed back into the parser or something. |
| 08:11 | <jgraham> | But I really don't remember |
| 08:11 | <hsivonen> | so many things need a rewrite |
| 08:11 | <hsivonen> | Gecko's XSLT output is one of those |
| 08:11 | <hsivonen> | but first I should rewrite how XML is loaded in Gecko |
| 08:12 | <zcorpan> | yes we reparsed the output with the html parser |
| 08:12 | <hsivonen> | that project never got beyond careful planning |
| 08:12 | <Ms2ger> | We need a few clones of hsivonen, clearly |
| 08:12 | <zcorpan> | is there a reason gecko doesn't reparse? |
| 08:13 | <hsivonen> | zcorpan: Gecko does XSLT the Right Way |
| 08:13 | <zcorpan> | hsivonen: my question still stands :-P |
| 08:14 | <hsivonen> | zcorpan: sicking/peterv/Pike wrote it the Right Way? |
| 08:15 | <jgraham> | The Right Way does also seem to be The Hard To Maintain Way |
| 08:15 | <hsivonen> | yeah |
| 08:15 | <zcorpan> | yeah, so i actually meant, is there a reason not to change gecko to implement the Wrong Way like everyone else and not have a third mode to worry about? |
| 08:15 | <hsivonen> | and with scripts, the Right Way isn't actually quite right |
| 08:15 | <jgraham> | So given such a marginal feature, it seems that worse is better |
| 10:43 | <Ms2ger> | Anyone have old IEs around? |
| 10:44 | <hsivonen> | Ms2ger: I do |
| 10:45 | <Ms2ger> | Let me write you a test, then :) |
| 10:45 | <hsivonen> | Ms2ger: OK |
| 10:46 | <Ms2ger> | hsivonen, http://software.hixie.ch/utilities/js/live-dom-viewer/saved/2259 |
| 10:49 | <hsivonen> | Ms2ger: HTMLInputElement, HTMLImageElement, HTMLImageElement |
| 10:49 | <hsivonen> | Ms2ger: in IE8 on XP |
| 10:49 | <Ms2ger> | :( |
| 10:49 | <hsivonen> | Yeah. :-( |
| 10:52 | <zcorpan> | why is that :-( ? |
| 10:53 | <zcorpan> | img needs the form element pointer? |
| 10:53 | <hsivonen> | zcorpan: right |
| 10:53 | <Ms2ger> | It seems to, at least |
| 10:54 | <hsivonen> | so why didn't WebKit devs feed their delta from the spec into the spec? |
| 10:54 | <zcorpan> | seems everyone implements that already? |
| 10:55 | <hsivonen> | zcorpan: Gecko and IE10 follow the spec and don't |
| 10:55 | <hsivonen> | or maybe I should test before I say anything |
| 10:55 | <zcorpan> | my copy of firefox gives the same result |
| 10:56 | <hsivonen> | Ms2ger: is this test case really testing what it is supposed to be testing? |
| 10:56 | <Ms2ger> | I don't know |
| 10:56 | hsivonen | boots Windows 8 |
| 10:57 | <Ms2ger> | zcorpan, Gecko does weird stuff, with <form></form><img> matching, for example |
| 10:58 | <hsivonen> | Ms2ger: same result in IE10 |
| 10:59 | <Ms2ger> | Hrm |
| 10:59 | <zcorpan> | Ms2ger: webkit and presto don't do that |
| 10:59 | <Ms2ger> | I'd hope not! |
| 10:59 | <hsivonen> | Ms2ger: maybe you should have </form> somewhere |
| 11:00 | <Ms2ger> | Gah, sounds like my IE10 is too old, then |
| 11:02 | <Ms2ger> | How about http://software.hixie.ch/utilities/js/live-dom-viewer/saved/2260 ? |
| 11:04 | <hsivonen> | Indeed Gecko tries to support <script defer> with XSLT |
| 11:05 | <hsivonen> | Ms2ger: IE10/Windows 8: HTMLInputElement, HTMLImageElement, undefined |
| 11:05 | <Ms2ger> | Okay |
| 11:06 | <hsivonen> | Ms2ger: IE8/XP: HTMLInputElement, HTMLImageElement, script terminated with error |
| 11:07 | <Ms2ger> | Lovely |
| 11:07 | <zcorpan> | what does ie do for http://software.hixie.ch/utilities/js/live-dom-viewer/saved/2261 ? |
| 11:08 | zcorpan | bets IE6 crashes |
| 11:08 | <hsivonen> | Ms2ger: script error in IE8 |
| 11:08 | <zcorpan> | (for 2260) |
| 11:08 | <hsivonen> | Ms2ger: undefined in IE10 |
| 11:09 | <hsivonen> | oops. those were 2261 for zcorpan |
| 11:09 | <Ms2ger> | That was for zcorpan? |
| 11:11 | <zcorpan> | undefined in ie10/win7 (tested in browserstack) |
| 11:19 | <hsivonen> | does the spec intend to forbid async scripts from running after a defer script has run but before DOMContentLoaded has fired? |
| 12:18 | <zcorpan_> | why does cssom have CSSCharsetRule again? |
| 12:18 | <zcorpan_> | again as in, it was obsolete in the anne-era |
| 13:53 | <annevk> | :/ |
| 14:03 | <zcorpan_> | thanks annevk |
| 15:45 | <Ms2ger> | Nice to have someone working on cssom again |
| 15:48 | <darobin> | well, I guess I won't fix the PHP configuration on the test server today |
| 15:48 | darobin | looks for something to break very rudely |
| 16:01 | <darobin> | jgraham, Ms2ger: if I were to start writing that magic python server, where would I start looking? |
| 16:02 | <darobin> | I need something that's bare bones and doesn't handle any HTTP that I don't want it to, no magic, etc. |
| 16:02 | <darobin> | I reckon it may just be less painful than trying to set Apache+PHP up so that they work correctly |
| 16:02 | <jgraham> | darobin: Heh |
| 16:02 | <jgraham> | Well |
| 16:02 | <Ms2ger> | https://bitbucket.org/annevk/simpleserver ? |
| 16:03 | <darobin> | Ms2ger: interesting, thanks |
| 16:03 | <jgraham> | Yeah, using asyncore as the basis could work |
| 16:03 | <darobin> | I guess I need to think about how this needs to work, actually |
| 16:03 | <jgraham> | Right |
| 16:03 | <jgraham> | So, the thing is |
| 16:03 | <darobin> | because it needs to send regular files, well, regularly, and form the same origin |
| 16:04 | <jgraham> | There are kind of competing requirements |
| 16:04 | <jgraham> | For running on local test machines there is no need to service > 1 user |
| 16:04 | <jgraham> | and there is an advantage to handling statefulness in a simple way |
| 16:05 | <darobin> | ah, statefulness too |
| 16:05 | <jgraham> | For running on w3c-test.org is will be exposed to the whole internet |
| 16:05 | <darobin> | right, and we probably want to be able to run something public |
| 16:05 | <darobin> | if nothing else, it makes it easier to talk about stuff |
| 16:06 | <darobin> | glad we got rid of those people, they were annoying |
| 16:06 | <jgraham> | Most of the Google people seem to use irccloud |
| 16:07 | <jgraham> | Anyway, so in the past |
| 16:07 | <jgraham> | I got to the list of requirements |
| 16:08 | <jgraham> | Realised that they conflict |
| 16:08 | <jgraham> | and gave up |
| 16:08 | <darobin> | heh |
| 16:09 | <darobin> | I think we can get to something if we work on it based on which HTTP behaviours we need for specific cases |
| 16:09 | <darobin> | in general, we need something that can serve files correctly — that's easy |
| 16:10 | <jgraham> | Well at a high level |
| 16:10 | <darobin> | then we need specific endpoints to be configurable with specific behaviour such as setting headers, giving raw responses with specific status, being slow |
| 16:10 | <jgraham> | We need the ability for a test to send arbitary bytes over the wire |
| 16:10 | <jgraham> | With specific timing |
| 16:11 | <darobin> | so could we get away with something that just imports python and runs it if it has a given extension? |
| 16:11 | <jgraham> | But yes, there are specific things that are common cases |
| 16:11 | <darobin> | and we can prebuild some common cases |
| 16:11 | <jgraham> | Well we could do that |
| 16:11 | <jgraham> | It mgith be quite hard if the choices are "common case" or "no infrastructure" |
| 16:12 | <darobin> | if .tpy in filename: load it, give it the data and a raw socket; else: send the file |
| 16:12 | <darobin> | well |
| 16:12 | <darobin> | with that scheme we can start with zero infrastructure |
| 16:12 | <darobin> | and pieces that are common, we progressively move them into the core as available services |
| 16:13 | <jgraham> | Well sure, it might make sense to start with something very minimal |
| 16:13 | <darobin> | if we build it such that it can proxy some paths to another server, we can have a smooth transition |
| 16:13 | <darobin> | I'm guessing there's something in Python that can do proxies easily? |
| 16:16 | <darobin> | looking at the stuff out there, I find it hard to tell what's fresh and what's dead |
| 16:16 | <darobin> | I'm guessing this might be beyond my python, or at least it'll take me longer than reasonable |
| 16:16 | <darobin> | I'll sleep on it |
| 16:17 | <jgraham> | import time, random |
| 16:17 | <jgraham> | time.sleep(random.randint()) |
| 16:17 | <Ms2ger> | Would be nice to have something like ^headers^ too |
| 16:17 | <darobin> | Ms2ger: you mean just a file that sets the headers for a directory? |
| 16:18 | <Ms2ger> | For a file |
| 16:18 | <Ms2ger> | But yes |
| 16:18 | <jgraham> | Turns out that everyone always thinks that the sugar they are used to is really important :) |
| 16:18 | <Ms2ger> | Well, really important |
| 16:18 | <darobin> | Ms2ger: so foo.html.^headers^ or some such? |
| 16:18 | <Ms2ger> | I think it's a reasonably common case, and that foo.html^headers^ solves it quite simply |
| 16:18 | <Ms2ger> | darobin, right |
| 16:19 | <jgraham> | Yeah, that could be true |
| 16:19 | <darobin> | yes that makes sense |
| 16:19 | <darobin> | it's not inherently hard and it's certainly part of the stuff that I'd suggest we add as we progress |
| 16:21 | jgraham | -> afk |
| 16:22 | <darobin> | yeah, I'm off to 1) drown my attempt at configuring PHP right in beer, and 2) mull over a replacement |
| 16:22 | <Ms2ger> | 3) Implement <blink>? |
| 16:22 | <darobin> | maybe if we wait long enough then having Node as a dependency won't be an issue, and I can code it in a day, two tops :) |
| 16:29 | Hixie | is back |
| 16:29 | <annevk> | "Microsoft has been following the discussion on Futures closely both through the W3C and the discussions at TC39 (ECMAScript), and while we don't comment on plans for implementation, I can say that we are generally supportive of the idea." |
| 16:29 | <Ms2ger> | Congratulations! |
| 16:30 | <annevk> | Hixie: I'm gonna assume next is "brb, reading email" and we won't see you for another couple of weeks :p |
| 16:31 | <Ms2ger> | bholley! |
| 16:31 | bholley | knew he shouldn't have logged on IRC this morning |
| 16:31 | <bholley> | :-) |
| 16:31 | <Ms2ger> | I've been trying to catch you since Sunday or so :) |
| 16:32 | bholley | has been away from internet |
| 16:32 | Ms2ger | moves servers |
| 16:35 | <Hixie> | annevk: reading e-mail? nah, mark all as read, no? |
| 16:35 | <Hixie> | anyone send me anything important? |
| 16:36 | <Ms2ger> | Your spec for the named getter on form is bogus |
| 16:41 | <Hixie> | Ms2ger: file a bug |
| 16:41 | <Hixie> | :-) |
| 16:41 | <Hixie> | (or whatwg@ e-mail, i won't mark those as read) |
| 16:41 | <Hixie> | GPHemsley: we should probably encourage people to use their names as usernames rather than companies |
| 16:41 | <Ms2ger> | I already filed one |
| 16:42 | <Ms2ger> | More on their way |
| 16:42 | <GPHemsley> | probably |
| 16:44 | <GPHemsley> | For non-Mozillians: IE and Opera use the first occurrence of a parameter, Firefox and Chrome use the last occurrence |
| 16:44 | <GPHemsley> | no one does what the RFC says, which is to treat the whole MIME type as invalid |
| 16:59 | <Hixie> | i wonder what we should do about <meta name> |
| 16:59 | <Hixie> | on the one hand, everyone under the sun seems to invent their own value to use |
| 17:00 | <Hixie> | on the other, 99% of these values (at a guess) are never actually consumed by any software and are therefore just wasting author's time |
| 17:01 | <Ms2ger> | If it makes authors happy, can you really say that's a waste of their time? |
| 17:01 | <Hixie> | not clear that it makes them happy |
| 17:04 | <Hixie> | zcorpan: for your doc, you could name it "How HTML has evolved since 1998" |
| 17:22 | <GPHemsley> | Hixie: You mean you don't like fielding a hundred requests for accounts just to add spec-less meta extensions? |
| 17:23 | <Hixie> | no, we could solve that problem orthogonally |
| 17:23 | <Hixie> | (e.g. providing a web form) |
| 17:23 | <GPHemsley> | ah |
| 17:23 | <GPHemsley> | true |
| 17:23 | <Hixie> | we're fielding requests intentionally, as a way to see whether people actually do have so many crazy values intentionally |
| 17:24 | <Hixie> | it seems the answer is yes |
| 17:24 | <GPHemsley> | heh |
| 17:24 | <GPHemsley> | you could go the MIME type route and have multiple types of values |
| 17:24 | <GPHemsley> | those with specs, those for private use or whatever |
| 17:25 | <Hixie> | well clearly we could have more specced values and less specced values |
| 17:25 | <Hixie> | but the question is really what to do about the latter |
| 17:26 | GPHemsley | shrugs |
| 17:32 | <bradeeoh> | Hixie: ping |
| 17:34 | <Hixie> | bradee-oh: pong |
| 17:39 | <bradee-oh> | Hixie: hi - I'm crafting an email to whatwg, but as I was, I noticed the plot was thicker than I originally noticed... |
| 17:39 | <bradee-oh> | Hixie: re: pagehide events and page visibility. |
| 17:39 | <bradee-oh> | Hixie: I guess I have two issues: |
| 17:40 | <bradee-oh> | 1 - The original issue I was going to email about. "unload a document" used to go "pagehide, then unload event, then no more events" |
| 17:40 | <bradee-oh> | Now it goes "pagehide, visibilitychanged, unload, then no more events" |
| 17:41 | <bradee-oh> | Hixie: this breaks an original goal of pagehide to be a drop-in replacement for the unload event (i.e., it's the last event you'll get) |
| 17:41 | <bradee-oh> | Hixie: It also doesn't make sense in the standalone world of pagehide/pageshow. "If I get a pagehide event with persisted == true, then I expect no more events until I get pageshow" |
| 17:42 | <bradee-oh> | Hixie: but that leads to my second question... apparently the spec never allows for "pagehide with persisted set to true". I could swear that it did at one time, and WebKit certainly dispatches such events. |
| 17:42 | <Hixie> | bradee-oh: huh |
| 17:42 | <bradee-oh> | Hixie: and such an event is necessary for scripts to play with page caching. |
| 17:43 | <Hixie> | bradee-oh: i forget why we added visibilitychanged |
| 17:43 | <Hixie> | bradee-oh: does anyone implement it yet? If not, we could move it to before pagehide |
| 17:43 | <Hixie> | bradee-oh: in general, please do send the e-mail, i don't have any of this paged in and so i don't have anything useful to contribute right now :-( |
| 17:43 | <bradee-oh> | Hixie: We added it for tab visibility - background tabs, minimized windows, etc etc |
| 17:44 | <bradee-oh> | Hixie: okay - Should I put all of this in one, or start two threads? |
| 17:44 | <bradee-oh> | Hixie: I don't know about pagevis implementors yet, but I don't think we'll implement it as-is because of this holdup (https://bugs.webkit.org/show_bug.cgi?id=116769) |
| 17:45 | <Hixie> | bradee-oh: one mail is fine by me |
| 17:45 | <bradee-oh> | Hixie: okay. Thanks! |
| 17:45 | <Hixie> | (e-mails i can split easily, bugs i can't. so i prefer e-mails to have lots of issues, and bugs to have one.) |
| 17:48 | <GPHemsley> | quick poll (no cheating!): what would the charset be for a document tagged with this MIME type: |
| 17:48 | <GPHemsley> | text/xml;test=ISO-8859-2 test te"st ; charset=ISO-8859-3; testing=asd"asd; charset=ISO-8859-4 |
| 17:49 | <Hixie> | -3 probably |
| 17:49 | <GPHemsley> | Hixie: What made you come to that conclusion? |
| 17:50 | <Hixie> | [text/xml] [;] [test] = [ISO-8859-2 test te"st] [;] [charset] = [ISO-8859-3] [;] <abort> |
| 17:50 | <annevk> | isn't that a parse error theoretically? |
| 17:51 | <GPHemsley> | theoretically, but not in practice |
| 17:51 | <Hixie> | am i right? :-) |
| 17:51 | <GPHemsley> | Hixie: Depends on who you ask ;) |
| 17:51 | <Yuhong> | Hixie: on http://ln.hixie.ch/?start=1115899732&count=1, this crash was later discovered again in http://blogs.norman.com/2011/security-research/drag-and-drop-vulnerability-in-ms11-050 and turned out to be exploitable and fixed in MS11-050. |
| 17:51 | <Hixie> | GPHemsley: figures |
| 17:51 | <GPHemsley> | preliminary question, what about this: |
| 17:51 | <GPHemsley> | text/xml;charset=ISO-8859-3;charset=ISO-8859-4 |
| 17:52 | <Hixie> | Yuhong: good times |
| 17:52 | <Hixie> | GPHemsley: -3, i hope, but it depends on whether you abort early or not |
| 17:52 | <GPHemsley> | presume you are reading the entire MIME type at once (not just looking for the charset specifically) |
| 17:53 | <GPHemsley> | though you raise a good point |
| 17:53 | <Hixie> | most of the time when you want a charset you are only looking for the charset |
| 17:54 | <Hixie> | not parsing the type |
| 17:54 | <Hixie> | in my experience |
| 17:54 | <Hixie> | see also the text/html charset sniffer in the html parser |
| 17:54 | <GPHemsley> | presume you are parsing the MIME type in general, and getting the charset is only a side effect |
| 17:54 | <GPHemsley> | (these examples are only using the charset as an easily testable proxy) |
| 17:55 | <GPHemsley> | (though I suppose if there are parsers that are looking for that parameter specifically, that'd be a problem) |
| 17:55 | <jgraham> | Hixie: Hej :) I hope you enjoyed your time away from angle brackets :) |
| 17:55 | <GPHemsley> | Hixie: Do you have a link to the text/html charset sniffer for me? |
| 17:55 | <Hixie> | jgraham: it was nice :-) |
| 17:55 | <Hixie> | GPHemsley: one sec |
| 17:56 | <jgraham> | OK, that was one smilie more than I needed |
| 17:56 | <Ms2ger> | :):) |
| 17:56 | <jgraham> | Now I am worried I am turning into a lunatic |
| 17:56 | <Ms2ger> | Turning? |
| 17:56 | <Hixie> | GPHemsley: oh i guess it's just for <meta> http://www.whatwg.org/specs/web-apps/current-work/#algorithm-for-extracting-a-character-encoding-from-a-meta-element |
| 17:57 | GPHemsley | wishes people used the multipage version more often |
| 17:57 | <Hixie> | but you'll love that algorithm |
| 17:57 | <Hixie> | just keep the single page one open, then paste the url into that tab and it'll jump without reloading |
| 17:58 | <GPHemsley> | I suppose I could do that |
| 17:58 | <GPHemsley> | but anyway |
| 17:59 | <GPHemsley> | take my tests again pretending you are not just looking for charset specifically |
| 17:59 | <Hixie> | ah |
| 17:59 | <Hixie> | dunno then |
| 17:59 | <Hixie> | don't we generally ignore parameters? :-) |
| 18:01 | <GPHemsley> | gah, you're no fun :P |
| 18:01 | <Yuhong> | Tested and on IE10 it deletes the text from the original location, while on Firefox it doesn't. |
| 18:02 | <Yuhong> | On Chrome it don't work. |
| 18:02 | <GPHemsley> | Hixie: Anyway, the way things are, if you have a parameter with an unquoted value, you ignore anything that comes after the first whitespace character. |
| 18:03 | <GPHemsley> | so charset=ISO-8859-1 this is ignored;test=bla |
| 18:03 | <GPHemsley> | the question is what to do about quotation marks |
| 18:03 | <GPHemsley> | some implementations will treat the quotation mark as a quotation mark and look for its match before deciding what to ignore |
| 18:04 | <Hixie> | weird |
| 18:04 | <GPHemsley> | others will ignore all characters that aren't semicolon |
| 18:04 | <GPHemsley> | so the question is, what do I put in the algorithm? :P |
| 18:04 | <GPHemsley> | it seems to be leaning towards not matching quotes in this case |
| 18:04 | <GPHemsley> | which IE, Opera, and Safari appear to agree with |
| 18:05 | <GPHemsley> | Firefox and Chrome, on the other hand, will each up that whole chunk between the two quotation marks and ignore that |
| 18:05 | <GPHemsley> | s/each/eat/ |
| 18:05 | <GPHemsley> | meaning if you happen to have an unmatched quotation mark, the whole rest of the MIME type is ignored |
| 18:05 | <Hixie> | is there any way to test this other than charset? |
| 18:06 | <GPHemsley> | not that I'm aware of |
| 18:06 | <GPHemsley> | but I'm not aware of much :P |
| 18:06 | <GPHemsley> | what is the XML format parameter? anything visible? |
| 18:07 | <Hixie> | never heard of it |
| 18:07 | <GPHemsley> | then I have no idea |
| 18:07 | <GPHemsley> | I'm inclined to not match quotes |
| 18:07 | <GPHemsley> | but it has been suggested that tokenizing might be done before parsing |
| 18:08 | <GPHemsley> | though that would probably be in violation of the spec, as written |
| 18:08 | GPHemsley | shrugs |
| 18:09 | <Hixie> | !@#$%^&*( https://www.w3.org/Bugs/Public/show_bug.cgi?id=22106 wtf |
| 18:09 | <Hixie> | GPHemsley: if there's no way to test it, you may be trying to solve a non-problem. :-) |
| 18:15 | <GPHemsley> | Hixie: Well, yes and no |
| 18:16 | <GPHemsley> | Hixie: There are some browsers that will use the last charset value and some that will use the first |
| 18:16 | <GPHemsley> | So I think there's something in play here |
| 18:17 | <GPHemsley> | but seeing as how I would prefer the simpler solution, and a majority of browsers agree with me, I think I'll go with that |
| 18:17 | <GPHemsley> | (majority out of 5, that is) |
| 18:21 | GPHemsley | wonders if he should allow single quotes for quoted parameter values, too |
| 18:21 | <GPHemsley> | (probably not) |
| 18:34 | <GPHemsley> | ugh |
| 18:36 | <GPHemsley> | the browsers that do charset-first are also the ones that do non-quote-matching, and the same for charset-last and quote-matching |
| 18:36 | <GPHemsley> | except Safari |
| 18:37 | <GPHemsley> | because now I have to figure out whether to allow backslash to escape a semicolon in order to be ignored |
| 18:37 | <GPHemsley> | as in: |
| 18:37 | <GPHemsley> | text/xml;charset=ISO-8859-2 test te\;charset=ISO-8859-5 test; testing=asd\;asd |
| 18:38 | <GPHemsley> | allow backslash to escape in an ignorable element, and that declares no charset |
| 18:38 | <GPHemsley> | don't allow it to, and it does |
| 18:47 | <Hixie> | ok, mailbox is dealt with |
| 18:47 | <Hixie> | now lunch |
| 18:49 | <Ms2ger> | I assume "dealt with" doesn't imply "read" |
| 18:51 | <Hixie> | i read most of them |
| 18:52 | <Ms2ger> | How many were there, I wonder? |
| 18:54 | <GPHemsley> | hsivonen: You there? |
| 18:54 | <GPHemsley> | Anyone have IE handy? |
| 18:57 | <GPHemsley> | Here's a fun one: |
| 18:58 | <GPHemsley> | text/xml;test=asdf\;charset=ISO-8859-3 test;charset=ISO-8859-2 te\"st;testing=te"st;charset=ISO-8859-5 |
| 18:58 | <GPHemsley> | Four possible encodings |
| 18:58 | <GPHemsley> | (utf-8 is the default for XML) |
| 18:58 | <GPHemsley> | and at least one browser does each one |
| 19:00 | <GPHemsley> | Firefox and Chrome do the same thing, but that's because they both match quotes |
| 19:00 | <GPHemsley> | I'm curious what IE does |
| 19:01 | <GPHemsley> | (IE has so far been patterning mostly with Opera) |
| 19:03 | <Ms2ger> | Other way around, probably |
| 19:03 | <GPHemsley> | well, yeah, but from my point of view :) |
| 19:04 | <qwebirc364527> | what is the best channel to ask questions about html5 and css3? |
| 19:05 | <aklein> | Hixie: yt? I've got some questions about the 'calling scripts' algorithm, especially as it regards microtask checkpoints |
| 19:12 | <GPHemsley> | regarding that last example: Firefox and Chrome choose -5, Opera chooses -3, Safari chooses utf-8 |
| 19:12 | <GPHemsley> | so I guess no one actually chooses -2 |
| 19:12 | <GPHemsley> | unless IE does |
| 19:13 | <GPHemsley> | a UA that allowed semicolon escaping would choose -2 |
| 19:14 | <GPHemsley> | err, rather, a UA that allowed semicolon escaping AND used the first occurrence of a valid charset parameter |
| 19:14 | <GPHemsley> | (this is all very complicated) |
| 19:15 | <GPHemsley> | it's not clear what made Safari just reject everything and default to utf-8 |
| 19:16 | <GPHemsley> | oh, unless... |
| 19:17 | <GPHemsley> | perhaps Sarfari is sniffing for HTML |
| 19:18 | <GPHemsley> | which would mean it treats the whole thing as invalid |
| 19:19 | <GPHemsley> | if that's true, it makes everything else even more complicated... |
| 19:34 | <GPHemsley> | Anyone with IE, what's the encoding on this page? http://whatwg.gphemsley.org/tests/mimesniff/sniffing.php?ct=text/xml;test=asdf\;charset=ISO-8859-3%20test;charset=ISO-8859-2%20te\%22st;testing=te%22st;charset=ISO-8859-5 |
| 19:38 | <GPHemsley> | (at least Safari isn't treating it as invalid... I guess) |
| 19:57 | <GPHemsley> | Is it possible to determine the MIME type of an iframe using JavaScript? |
| 20:01 | <zcorpan> | Hixie: i think i'll not change the title again :-) |
| 20:01 | <Ms2ger> | B-b-b-b-but |
| 20:03 | <GPHemsley> | apparently only in Firefox and IE...? |
| 20:20 | <zcorpan> | GPHemsley: if everyone is doing different things, just spec the simplest sane thing you can come up with :-) |
| 20:35 | <Hixie> | aklein: here |
| 20:35 | <Hixie> | zcorpan: i figured :-) |
| 20:37 | <aklein> | Hixie: hi there. the algorithm at http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#calling-scripts looks to me like it might be "perfoming a microtask checkpoint" too often |
| 20:38 | <aklein> | Hixie: the "microtask" is meant to end only when the outermost script invocation returns |
| 20:39 | <aklein> | but my reading of that section is that causing one script to be invoked from another (say, by synchronously dispatching an event via a call to HTMLElement.focus() inside an onclick handler) causes a checkpoint to be performed in the "middle" of the click handler (and then again at the end) |
| 20:41 | <aklein> | Gecko, WebKit, and Blink all do the right thing, but I think the spec likely needs a fix (this was noticed by someone unfamiliar with microtasks trying to understand them by reading the spec) |
| 20:42 | <Hixie> | aklein: i think that was done intentionally, but let me check the history... |
| 20:43 | <Hixie> | aklein: see https://www.w3.org/Bugs/Public/show_bug.cgi?id=19554 |
| 20:43 | <Hixie> | aklein: it's intentional (and it is hoped that the browsers will change accordingly) |
| 20:43 | <Hixie> | aklein: however, if the browsers won't change, then obviously we should change the spec |
| 20:44 | <aklein> | Hixie: hmm, interesting, reading... |
| 20:49 | <aklein> | Hixie: more generally, I'm interested in the problem of specs not referencing this "jump to a code-entry point" algorithm. e.g., DOM core doesn't use that algorithm when describing how events are dispatched. is that just a bug? |
| 20:50 | <aklein> | it seems like the layering is tricky, though |
| 20:50 | <aklein> | since DOM isn't supposed to refer to HTML |
| 20:51 | <Hixie> | doublec: yt? |
| 20:52 | <Hixie> | aklein: yeah i think i need to rework it to be in terms of the JS spec |
| 20:52 | <Hixie> | aklein: there's a bug on that too, hold on |
| 20:54 | <Hixie> | aklein: https://www.w3.org/Bugs/Public/show_bug.cgi?id=18242 |
| 20:56 | <aklein> | Hixie: my read of 19554: it looks you went with sicking's suggestion to do "outermost script exits" for blob url autorevoking, but left "perform microtask checkpoint" as running every time through the script-calling algorithm. and I don't see discussion about that issue on that bug. |
| 20:58 | <Hixie> | aklein: ah, maybe it was an error then. can you file a new bug? |
| 20:59 | <aklein> | Hixie: will do |
| 20:59 | <Hixie> | https://www.w3.org/Bugs/Public/show_bug.cgi?id=21851 makes no sense to me. can someone explain this? (the issue of putting .text on the abstract cue interface) |
| 20:59 | <Hixie> | aklein: thanks |
| 21:02 | <rafaelw> | Hixie: Can we abstract all uses of end-of-microtask into some kind of microtask work queue |
| 21:02 | <rafaelw> | and mutation observers, table sort, blob urls, etc... will all be microtask work queue types. |
| 21:02 | <rafaelw> | it looks like we now have at least four types of work happening without consistent semantics. |
| 21:03 | <rafaelw> | (mutation observers, table sorting, blob url revokation, custom element callbacks). |
| 21:03 | <aklein> | rafaelw: this seems to already be partially done, there's a list of "global script clean-up jobs" |
| 21:04 | <Hixie> | rafaelw: don't they all have slightly different needs? |
| 21:05 | <rafaelw> | I really hope not. |
| 21:05 | <rafaelw> | That would be unfortunate. |
| 21:05 | <rafaelw> | Adam is right, the closest thing here is the script cleanup steps. |
| 21:06 | <rafaelw> | I think maybe the global script cleanup jobs list needs a more general name: like global microtask work item |
| 21:06 | <aklein> | sicking & smaug____ might be interested in ^^^ as well |
| 21:06 | <rafaelw> | (and arun if he's nearby) |
| 21:07 | <sicking> | the way that mark miller proposed modeling it is that the "end of microtask" list is like a special task source |
| 21:07 | <sicking> | which has higher prioirty than all other task sources |
| 21:08 | <sicking> | i kind'a like that |
| 21:08 | <rafaelw> | presumably the current implementations fit that description? |
| 21:08 | <sicking> | i'm not sure that that's compatible with how mutation observers are defined right now, but I bet it could be made compatible with that |
| 21:08 | <Hixie> | i've suggested doing that |
| 21:08 | <Hixie> | but iirc there's problems with it |
| 21:08 | <sicking> | rafaelw: it's not how gecko does it |
| 21:08 | <rafaelw> | what's the semantic difference? |
| 21:09 | <sicking> | rafaelw: does mutation observers do anything differently once all mutation observers have been notified? |
| 21:09 | <sicking> | specifically, say that I have 3 observers |
| 21:09 | <sicking> | A B and C |
| 21:10 | <sicking> | if I do something that ends up wanting to notify all 3 |
| 21:10 | <GPHemsley> | zcorpan: That's the plan :) |
| 21:10 | <sicking> | and then I return to the event loop, which means that we start notifying them |
| 21:10 | <sicking> | we start with notifying A |
| 21:11 | <sicking> | and then we notify B, but B does something that wants to notify A and C |
| 21:11 | <sicking> | which one is notified after that? A or C? |
| 21:11 | <rafaelw> | C |
| 21:11 | <smaug____> | (microtask doesn't necessarily mean returning to event loop) |
| 21:11 | <rafaelw> | then A |
| 21:11 | <rafaelw> | conceptually, you can think about the delivery steps like this: |
| 21:11 | <sicking> | rafaelw: ok, so we just add to C's list, and then add to A's list which adds A to the end of the queue? |
| 21:12 | <rafaelw> | let currentRecipients be currentRecipients |
| 21:12 | <rafaelw> | clear currentRecipients |
| 21:12 | <rafaelw> | while (currentRecipients.length) |
| 21:12 | <rafaelw> | next = currentRecipients.shift(); |
| 21:12 | <rafaelw> | if (next.stillNeedsDelivery) next.deliver() |
| 21:12 | <sicking> | rafaelw: you're already describing a different model than a task source |
| 21:13 | <sicking> | rafaelw: having it be a task source would require there not being a "currentReciptients" concept |
| 21:14 | <rafaelw> | is there any advantage to the task source scheduling that you're thinking of? |
| 21:14 | <sicking> | since "currentReciptients" require going through the contents of the task source and picking out things that are specifically MO tasks |
| 21:15 | <rafaelw> | no. it wouldn't |
| 21:15 | <sicking> | rafaelw: Not sure. There might be the advantage that we can put more things in the task source while having a defined interaction and order |
| 21:15 | <sicking> | i'm not sure how we can define more things happning at "end of microtask" right now |
| 21:16 | <Hixie> | see https://www.w3.org/Bugs/Public/show_bug.cgi?id=20821 for more discussion on this btw |
| 21:17 | <rafaelw> | it seems like there are two (somewhat orthogonal issues) |
| 21:17 | <rafaelw> | a) when delivery happens |
| 21:17 | <rafaelw> | b) how delivery happens. |
| 21:17 | <sicking> | yup |
| 21:17 | <sicking> | well |
| 21:17 | <sicking> | what do you mean by the "how"? |
| 21:17 | <rafaelw> | (and I suppose) whether all clients can live with the same semantics of a single a & b. |
| 21:17 | <rafaelw> | delivery scheduling |
| 21:18 | <rafaelw> | (i.e. m.o vs task source) |
| 21:18 | <sicking> | so a == "when do we run 'end of microtask' stuff", and b == "in what order does 'end of microtask' stuff run"? |
| 21:18 | <rafaelw> | yes. |
| 21:18 | <sicking> | then yes, i agree |
| 21:18 | <smaug____> | isn't a) clear |
| 21:18 | <sicking> | i thought so |
| 21:19 | <rafaelw> | that's what i'm hoping, the current spec language is clearly wrong. |
| 21:20 | <rafaelw> | there are two problems with the current wording (wrt a) |
| 21:22 | <rafaelw> | 1) http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#calling-scripts will Perform a microtask checkpoint, when there is a running script |
| 21:23 | <rafaelw> | 2) there are multiple kinds of work which are happening here, and it seems like they should all be clients of the same mechanism. |
| 21:25 | <sicking> | rafaelw: doesn't step 5 in that algorithm only do the microtask checkpoint if it's the outermost running script? |
| 21:25 | <sicking> | oh, no |
| 21:25 | <sicking> | step 6 is what does the checkpoint |
| 21:26 | <rafaelw> | right. that's why adam was suggesting that step 5 is closest to what we need here. |
| 21:27 | <rafaelw> | although, we need think thing to also be invoked at the end of the current Task, so it makes somewhat less sense to call it (global script clean-up jobs) |
| 21:27 | <sicking> | the cleanup jobs stuff isn't even agreed upon being a workable idea. I think Google is wary so far |
| 21:27 | <sicking> | weary even |
| 21:27 | <rafaelw> | well, i think we can treat that as a separate issue. |
| 21:27 | <rafaelw> | (presumably that's about File stuff). |
| 21:28 | <sicking> | yes, definitely separate, sorry |
| 21:28 | <rafaelw> | at very least, there are m.o., custom element callbacks and table sorting. |
| 21:28 | <rafaelw> | that are all "end of microtask" |
| 21:28 | <rafaelw> | (and if their needs are different, i'm not aware of it). |
| 21:35 | <Hixie> | can anyone figure out what https://www.w3.org/Bugs/Public/show_bug.cgi?id=22049 means? |
| 21:35 | <rafaelw> | is this a reasonable way to clean this up: I'll write-up a proposal for cleaning up the language, attach it to a whatwg bug, and start cc'd folks -- and the folks i ad can make sure the right stake holders are added (that i missed)? |
| 21:35 | <sicking> | The way I'd like to define things is that there's an "end of microtask" queue of work items. These items are always added to the end of the queue and always run in queue order. Only once the queue is empty do we continue with doing whatever else we had planned to do (like calling the next event handler for example). M.o. would, when they detect that a MO gets its first entry, queue a work item at the end of the microtask queue which notifies |
| 21:35 | <sicking> | MO. When a MO gets additional entries, nothings needed to be done. |
| 21:35 | <rafaelw> | s/ad/add |
| 21:36 | <sicking> | rafaelw: that soudns good |
| 21:36 | <rafaelw> | ok, well now you've opened issue b |
| 21:36 | <rafaelw> | so let's talk about it briefly. |
| 21:36 | <sicking> | rafaelw: ah, yes, definitely |
| 21:37 | <sicking> | rafaelw: sorry, my mind has been more occupied with b |
| 21:39 | <sicking> | rafaelw: i guess it would be nice if the table sorting happened before notifying any MO. Since otherwise we'd might notify it twice rather than once. But that requires tricky knowledge about different end-of-microtask-work-items |
| 21:43 | <rafaelw> | so adam and I were just talking about this and we think it's probably ok to use a regular Task queue. |
| 21:44 | <rafaelw> | M.O. will need to schedule a single task for all observers and make sure its pending every time a new record gets enqueue to an observer |
| 21:44 | <sicking> | rafaelw: won't that cause these things to run after an event has fully run? Rather than after each event handler |
| 21:44 | <rafaelw> | sorry. have you jumped back to talking about (a)? |
| 21:44 | <sicking> | rafaelw: or do you mean "task queue that runs at the end of microtask" |
| 21:44 | <rafaelw> | yes. |
| 21:44 | <sicking> | rafaelw: ok, i'm with you |
| 21:45 | <sicking> | why do you need a single task for all observers? |
| 21:45 | <rafaelw> | the issue with scheduling for m.o is that delivery is ordered by observer *creation time*. |
| 21:45 | <rafaelw> | so each delivery cycle needs to sort the observers which are about to be delivered to. |
| 21:45 | <sicking> | oooh :( |
| 21:46 | <sicking> | why do we use observer creation time? |
| 21:46 | <rafaelw> | well, first it was a useful construct because pages can control order of delivery by creating their observers in the right sequence. |
| 21:47 | <rafaelw> | but the real reason is that ordering by *mutation* order would have risked exposing implementation details. |
| 21:47 | <rafaelw> | and being non-compat. |
| 21:47 | <rafaelw> | (or very hard to spec) |
| 21:47 | <sicking> | mm.. good point |
| 21:48 | <rafaelw> | so i think it makes sense to use a FIFO queue (avoid Task queue for clarity). |
| 21:48 | <rafaelw> | the wording for m.o. gets more complex, but i think that's ok. |
| 21:48 | <sicking> | yeah |
| 21:49 | <rafaelw> | and i think we're all agreed on the timing, but the spec is just in need to a fix-up. |
| 21:49 | <rafaelw> | any other problems you can think of? otherwise I'll go write it up and open the bug. |
| 21:50 | <sicking> | we'd have to define things like, what happens if a MO does something that both cause additional MOs needing to be called, and also cause tables to need to be re-sorted. Does those MOs get called before or after the table is sorted? |
| 21:50 | <sicking> | I.e. say that you have observers A and B created |
| 21:50 | <sicking> | and you do a mutation that requires A to fire |
| 21:51 | <sicking> | so then A fires, and it does a mutation which requires B to get fired and also mutates a table. |
| 21:51 | <sicking> | does B run before or after table is resorted? |
| 21:51 | <sicking> | and would the answer be different if the initial mutation had required both A and B to get notified? |
| 21:52 | <rafaelw> | so i have an opinion... |
| 21:53 | <sicking> | i don't think i have a strong opinion. Though it seems iffy if the answer depends on if B was originally scheduled or not |
| 21:54 | <rafaelw> | i think when m.o. runs, it *has* to deliver to all observers that are "activated" before it calls the first one. |
| 21:54 | <rafaelw> | i think the question is where it continues delivering until there are no "active" observers, or if it yields to other types of work. |
| 21:55 | <rafaelw> | s/where/whether |
| 21:56 | <sicking> | makes sense |
| 21:59 | <rafaelw> | so presumably mark wants ecma end-of-turn stuff to be enqueued to this new microtask FIFO queue? |
| 22:00 | <rafaelw> | (promises, weakrefs, Object.observe, etc...) |
| 22:01 | <rafaelw> | s/ecma/ecmascript/ |
| 22:05 | <rafaelw> | ok. i guess this horse is dead |
| 22:06 | <rafaelw> | i'll open a bug that puts a stake in the ground and we can iterate from there. |
| 22:16 | <sicking> | rafaelw: sorry, yes |
| 22:16 | <sicking> | rafaelw: say my name and my irc client will start blinking and stuff. It's really annoying but it works :) |
| 22:20 | <rafaelw> | sicking: ok. |
| 22:20 | <rafaelw> | here's the bug: https://www.w3.org/Bugs/Public/show_bug.cgi?id=22185 |
| 22:20 | <rafaelw> | Please add anyone I've missed. |
| 22:21 | <rafaelw> | I'll try to write-up the proposal today or tomorrow. |
| 22:22 | <aklein> | rafaelw: thanks for writing this all down |
| 22:54 | <JonathanNeal> | So, in April http://html5doctor.com/the-hgroup-element/ mentioned they were "working on an article to help guide authors on which markup patterns they should use instead [of hgroup]" What has come of that? What would you folks recommend? |
| 22:54 | <JonathanNeal> | And related, any developments on <subline> or something similar? |
| 22:54 | <Hixie> | <hgroup> is the element to use. |
| 22:54 | <Hixie> | if you have subheadings |
| 22:55 | <Hixie> | hsivonen, MikeSmith, gsnedders: woops, sorry, just checked in a parser fix without marking it for conformance checkers and tools |
| 22:56 | <JonathanNeal> | Huh, has it been undeprecated or something, Hixie? |
| 22:58 | <Hixie> | JonathanNeal: it was never deprecated, at the whatwg |
| 22:58 | <boogyman> | JonathanNeal: why now use the appropriate h-level then use the "next sibling" CSS selector |
| 22:58 | <boogyman> | not* |
| 22:58 | <Hixie> | JonathanNeal: all that happened with <hgroup> is that the w3c is trying to assert its independence, as far as i can tell, by making dumb changes to their fork of the spec. |
| 22:58 | <Hixie> | (note: the above may be overly cynical) |
| 22:59 | <MikeSmith> | Hixie: thanksfor theheads-up |
| 22:59 | <Hixie> | MikeSmith: (specifically, for <menuitem>; without the fix you'll have an infinite loop) |
| 23:01 | <Hixie> | man, i'm totally screwing up this rtl bug |
| 23:01 | <MikeSmith> | ah yeah, I saw the bug report I think |
| 23:01 | <Hixie> | every time i fix it i make it worse |
| 23:01 | <JonathanNeal> | Is there an IRC room for bugging W3C folks about this, and figuring out what they plan to push in its stead? |
| 23:01 | <Hixie> | i18n people must think i'm a loon |
| 23:01 | <MikeSmith> | (menuitem) |
| 23:02 | <Hixie> | JonathanNeal: #htmlwg on irc.w3.org, if you care about the html spec, but i recommend living the easy life with the whatwg spec instead :-) |
| 23:03 | <Philip`> | #html-wg, I think |
| 23:03 | <JonathanNeal> | The inability to add so much as a <div> or <span> in <hgroup> was what keeps me tracking this. |
| 23:03 | <boogyman> | ^ if you're a UA implementer. If he's a consumer, then he should look at which version of the spec is being used for UA's |
| 23:03 | <JonathanNeal> | Unless I'm incorrect in that preposition? |
| 23:04 | <Hixie> | JonathanNeal: why do you need a <div> in <hgroup>? |
| 23:05 | <MikeSmith> | JonathanNeal: I don't think hgroup is ever essential. The only reason to use it is if you care about how applications the implement the outline algoritm are going to show your headings in the outline |
| 23:05 | <Hixie> | JonathanNeal: (you can have a <Span> around the <h1> or <h2> contents in <hgroup>) |
| 23:06 | <JonathanNeal> | I was always hoping an element like <hgroup> or <subline> would normalize some of the odd implementations I catch across the web. |
| 23:07 | <JonathanNeal> | Like here http://twitter.github.io/bootstrap/ they have a kind of sub heading or abstract that they place in a paragraph. |
| 23:07 | <Hixie> | that's hte idea of <hgroup>, right |
| 23:07 | <JonathanNeal> | But here http://purecss.io/ they have it in a heading. |
| 23:07 | <Hixie> | abstracts are more <header> material |
| 23:08 | <MikeSmith> | JonathanNeal: the W3C HTML spec has http://www.w3.org/html/wg/drafts/html/master/common-idioms.html#sub-head (if you've not seen it already) |
| 23:08 | <Hixie> | JonathanNeal: the bootstrap case is <header> <hgroup> <h1> Bootstrap </h1> <h2> Sleek [...] </h2> </hgroup> <p> ...download... </p> <nav> <p> ...github...examples... </p> </nav> </header> |
| 23:08 | <Hixie> | or similar |
| 23:08 | <JonathanNeal> | The Boostrap team occasionally labeling it a "byline", although it is not being used to attribute credit, it's being used as a subheading. |
| 23:10 | <JonathanNeal> | <div class="marketing">…<h1>Built with Bootstrap.</h1><p class="marketing-byline">For even more sites built with Bootstrap…</div> |
| 23:12 | <JonathanNeal> | Those are interesting recommendations, MikeSmith. |
| 23:13 | <boogyman> | JonathanNeal: secondary to this conversation, but I believe a hyphen is an illegal character to use in an id/class attribute value |
| 23:13 | <JonathanNeal> | Hixie: I see. Thanks. Yet Boostrap almost kind of avoids HTML5 elements. |
| 23:14 | <JonathanNeal> | boogyman: not sure I follow. there is no sub-head element, that's just an article describing (meh) techniques to mark up subheadings. |
| 23:14 | <Hixie> | JonathanNeal: yeah i just meant that's what it would look like if you used modern HTML |
| 23:16 | <JonathanNeal> | Maybe the paradigm shift was just really high to think of using <h1-6> for longer, even mulit-part text. |
| 23:16 | <JonathanNeal> | <h2-6> rather, within an <hgroup> |
| 23:16 | <MikeSmith> | JonathanNeal: I happen to agree with those recommendations, and disagree with Hixie. I think hgroup is a solution in search of a problem. |
| 23:17 | <Hixie> | the problem is right there: how do you mark up subheadings |
| 23:17 | <Hixie> | every w3c spec has it |
| 23:17 | <Hixie> | how is it not a real problem? |
| 23:17 | <MikeSmith> | Hixie: you can obviously mark up subheadings without <hgroup> |
| 23:17 | <tantek> | Hixie, you mean it's not <br><b><font size> ? |
| 23:17 | <tantek> | ;) |
| 23:18 | <JonathanNeal> | It's certainly a situation in the projects I've worked on, and I see differing opinions on how it should be marked up, between Twitter and Yahoo. |
| 23:18 | <MikeSmith> | everybody was marking up subheadings in whatever ways before hgroup came along |
| 23:18 | <Hixie> | MikeSmith: well sure, you can mark up paragraphs with <p>. I'm not disagreeing that there are multiple solutions, just saying that there is a problem |
| 23:18 | <MikeSmith> | UAs do nothing with hgroup |
| 23:18 | <Hixie> | MikeSmith: er, without <p> |
| 23:18 | <MikeSmith> | yeah |
| 23:19 | <MikeSmith> | I agree it'd be a bigger problem if browsers actually exposed the document outline |
| 23:19 | <Hixie> | JonathanNeal: right, the fact that there were multiple people disagreeing on how to mark it up is why we introduced <hgroup> |
| 23:19 | <Hixie> | it's similar to <section> and <aside> and so on |
| 23:19 | <JonathanNeal> | MikeSmith: some do, my iPhone has started recommending alternate views of web pages. |
| 23:20 | <JonathanNeal> | I'm sure you all know what it is better than I do, but has anyone else seen this? |
| 23:20 | <MikeSmith> | Hixie: but so far you're the one who's not wanting to have browsers provide a way to Web content to expose a document outline |
| 23:20 | <JonathanNeal> | It kind of strips the page of styling and presents you with a book view of a web page? |
| 23:20 | <MikeSmith> | JonathanNeal: have not see that |
| 23:23 | <JonathanNeal> | Yea, it's called "Reader" |
| 23:23 | <JonathanNeal> | http://photos.appleinsider.com/safari-110607-3.png |
| 23:24 | <MikeSmith> | ah yeah |
| 23:24 | <Hixie> | MikeSmith: i think the outline thing is kind of an orthogonal thing. even without the outline issue, we still need something like <aside> and <nav> and <hgroup>. |
| 23:24 | <MikeSmith> | JonathanNeal: that thing seems pretty half-assed |
| 23:25 | <boogyman> | its a "low-fi" render |
| 23:25 | <MikeSmith> | Hixie: I think there's way more of need for <aside> and <nav> then for <hgroup> but yeah I agree people certainly want something |
| 23:25 | <JonathanNeal> | MikeSmith: it's a start, and definitely the most outline-ish thing I've seen for non-developers. |
| 23:26 | <Hixie> | MikeSmith: sure, subheadings are rarer than sidebars, but that's just a question of degrees, not a question of whether there's a problem or not. |
| 23:26 | <MikeSmith> | JonathanNeal: well, it doesn't seem like an outline at all to me. And it's not clear to me that it's doing anything with <hgroup> |
| 23:26 | <MikeSmith> | Hixie: true |
| 23:28 | <JonathanNeal> | MikeSmith: I meant, it's using (atleast the elements of) the outline to create a book view of the page. |
| 23:29 | <MikeSmith> | Hixie: I guess to me it just seems like not a high enough priority to merit a new element. But then I could also say that about <article> and some others. |
| 23:30 | <JonathanNeal> | Long live <main> |
| 23:31 | <MikeSmith> | I think some people get way way to wrapped up in discussions about how to properly use the semantic elements -- <article> etc. |
| 23:31 | <MikeSmith> | splitting hairs |
| 23:32 | <MikeSmith> | talmudic |
| 23:32 | <MikeSmith> | pick your metaphor |
| 23:33 | <MikeSmith> | I think in the end Web authors should care fuck all what somebody else thinks of their markup, as long as it's accessible and i18n-friendly, etc. |
| 23:34 | <MikeSmith> | it's like looking at the source of somebody's PDF and complaining about how they used PostScript |
| 23:34 | <boogyman> | Do you agree that there's a difference between appearing accessible, and being accessible? |
| 23:35 | <MikeSmith> | boogyman: is that question a trap of some kind? |
| 23:37 | <boogyman> | that wasn't my intent. I have seen poorly authored code that is "accessible" in the sense that it had tags and wai-aria roles, but that if someone was more miopic, it's really a pos that doesn't make sense. |
| 23:38 | <MikeSmith> | I see |
| 23:39 | <MikeSmith> | boogyman: I would imagine that anybody who was taking the time to add wai-aria roles to a document would be doing it in good faith to try to actually make it accessible |
| 23:40 | <Hixie> | MikeSmith: well sure, but we have it now, so it's kind of a moot point. There's lots of elements that are even less useful. |
| 23:40 | <MikeSmith> | Hixie: no disagreement there |
| 23:40 | <Hixie> | ok :-) |
| 23:41 | <MikeSmith> | so in related news, I see http://www.apple.com/safari/features.html mentions hgroup |
| 23:41 | <MikeSmith> | "Support for article, aside, footer, header, hgroup, nav, and section elements allows developers to create advanced web designs with semantic markup." |
| 23:42 | <MikeSmith> | JonathanNeal: do you have an example of Reader doing something with hgroup? |
| 23:44 | <MikeSmith> | maybe hober knows |
| 23:44 | <boogyman> | oh, btw -- Hixie stop being a loon |
| 23:46 | <Hixie> | MikeSmith: i did a search at google and found literally over 100,000,000 pages with <hgroup> (vs about five times as many with <aside>). It's pretty widely used. |
| 23:47 | <Hixie> | (this is on a subset of the web that we use for this kind of thing internally, i don't recall the sample size but it's in the single-digit billions, iirc) |
| 23:51 | <MikeSmith> | Hixie: OK |
| 23:52 | <MikeSmith> | that suggests to me we probably don't really need <aside) either then :) |
| 23:53 | <boogyman> | 100m isn't an insignificant amount |
| 23:58 | <Hixie> | MikeSmith: well, see https://www.w3.org/Bugs/Public/show_bug.cgi?id=17812 -- from the same sample, i got about 50k pages mentioning :read-only and friends |
| 23:59 | <Hixie> | MikeSmith: i'd guess 100m here is about 1%-10%. We were forced to have the <image> hack in the HTML parser for something used on 0.2% of pages. FWIW. |
| 23:59 | <JonathanNeal> | Good ol' <image>. |
| 23:59 | <JonathanNeal> | How's <picture> doing these days? |