08:07 | <krijnh> | <-- |
08:07 | <krijnh> | <-- back even |
08:38 | <zcorpan> | LC seems like even more bureaucracy |
09:23 | <roc> | U+2028/2029 are good for causing crashes in some platform text shapers too |
09:35 | <b4z81> | hi |
15:12 | <hsivonen> | does someone maintain a summary of Web Socket changes since -75? |
15:14 | <zcorpan> | -75? |
15:14 | <hsivonen> | zcorpan: what was the last one that was basically Hixie's creation? |
15:15 | <hsivonen> | was it -76? |
15:15 | <zcorpan> | yeah |
15:15 | <hsivonen> | I can't remember how much IETFness was in 76 vs. 75 |
15:15 | <zcorpan> | actually hixie's latest is called "-latest" and didn't go into ietf |
15:15 | <hsivonen> | -latest sounds more Living than numbered snapshots :-) |
15:16 | <zcorpan> | which had changed framing and a few other fixes (subprotocol negotiation comes to mind) |
15:16 | <zcorpan> | but -76 was what got implemented, basically |
15:16 | <hsivonen> | ok, so is there a summary of the delta between -76 and whatever it is that's being implemented now? |
15:17 | <zcorpan> | (opera has a few things from -latest that we had whined about and implemented before hixie got around to fixing the spec) |
15:17 | <zcorpan> | not that i'm aware of |
15:17 | <zcorpan> | i would summarize it as follows: everything is changed |
15:18 | <hsivonen> | zcorpan: ok. thanks. |
15:18 | <jgraham> | That's what I was going to say :) |
15:18 | <jgraham> | It is basically unrecognisable |
15:18 | <hsivonen> | zcorpan: did the IETF add or remove features in addition to changing how the old features mapped to bits on the wire? |
15:19 | <zcorpan> | added "extensibility", binary support, compression support |
15:19 | <zcorpan> | actually i don't recall the state of compression |
15:19 | <zcorpan> | might be taken out currently |
15:20 | <zcorpan> | also made lots of details undefined |
15:21 | <zcorpan> | like error handling |
15:21 | <zcorpan> | see http://www.ietf.org/mail-archive/web/hybi/current/msg07063.html |
15:24 | <hsivonen> | zcorpan: leaving error handling details undefined is seriously uncool. Sad to learn that that happened. :-( |
15:24 | <hsivonen> | zcorpan: what does extensibility do? |
15:25 | <zcorpan> | hsivonen: the framing has reserved bits for anyone to claim special behavior for, aiui |
15:25 | <zcorpan> | hsivonen: and there's a header to enable the extension or something |
15:25 | <zcorpan> | although extensions do not need to use the reserved bits (e.g. compression doesn't) |
15:27 | <zcorpan> | hsivonen: please complain on hybi about undefined error handling |
15:27 | <zcorpan> | hsivonen: as far as i can tell everyone else on hybi seems to think it's cool |
15:27 | <zcorpan> | more or less |
15:32 | <zcorpan> | reminds me that i still need to review the newest spec changes |
15:36 | <zcorpan> | hsivonen: oh also close frames have status codes |
15:52 | hsivonen | tries not to get involved in hybi |
15:53 | <zcorpan> | hsivonen: i don't blame you :-) |
16:16 | <Workshiva> | zcorpan: But I hope someone is getting involved, so it doesn't just run wild |
16:22 | <jgraham> | Workshiva: That policy failed |
16:23 | <jgraham> | AFAICT the only browser people involve are Ian Fette from Google and Patrick McManus from Mozilla |
16:24 | <jgraham> | Notably these are not the people who have been involved with WHATWG / recent W3C work |
16:30 | <Workshiva> | So the plan is just to hope it doesn't run too wild? :) |
16:31 | <jgraham> | I don't think ther is a plan |
16:31 | <jgraham> | +i |
16:32 | <zcorpan> | yeah i don't know what to do really when it comes to updating our impl |
16:32 | <zcorpan> | i guess i will need to reverse engineer mozilla and chrome |
16:33 | <zcorpan> | yay for having a spec |
16:35 | <zcorpan> | i also hope somebody will push for simplifying the extension mechanism |
16:36 | <zcorpan> | or removing it |
19:08 | <karlcow> | "No matter how good the MSFT rumor/news, this presentation is pretty painful thus far. #OSBC" http://twitter.com/dr138/status/70189401380093952 |
22:05 | <AryehGregor> | Wait, localStorage only stores strings? That's confusing. |
22:06 | AryehGregor | just ran into that in the context of the fact that Boolean(String(false)) == true |
22:09 | <Philip`> | I thought it stored structured clones (at least in theory)? |
22:10 | <AryehGregor> | Does it? It seems like when I put in a boolean, I get back a string. |
22:10 | <Philip`> | "Values can be any data type supported by the structured clone algorithm." |
22:11 | <AryehGregor> | http://software.hixie.ch/utilities/js/live-dom-viewer/saved/994 |
22:11 | <AryehGregor> | log: string |
22:12 | <AryehGregor> | In all four engines. |
22:12 | <Philip`> | (and that algorithm should pass primitive values unchanged) |
22:12 | <Philip`> | Don't know if implementations do that, though |
22:12 | <bga_> | json everywhere |
22:14 | <bga_> | localStorage['a'] = '1\02' :( |
22:14 | <TabAtkins> | Theoretically, it does structured clones. In reality, it's all strings for now. |
22:14 | <bga_> | we can not store \x00-\xFF => we can not store binary data |
22:15 | <bga_> | asciiz was bad invention |
22:16 | <bga_> | window.name also can not contains \0 |
22:16 | <zewt> | localStorage is structured clone but I don't think it's widely implemented? |
22:17 | <zewt> | many apis seem to be in that state currently |
22:18 | <zewt> | from bugzilla spam it looks like they just fixed History doing that in FF |
22:18 | <zewt> | would be very nice to be able to store File references in history; don't know if that actually works yet |
22:19 | <TabAtkins> | bga_: Just store binares in base64 instead. |
22:19 | <bga_> | TabAtkins can you force implementation to store string as len(4 bytes) + content instead content + \0 ? |
22:19 | <bga_> | TabAtkins no |
22:19 | <zewt> | base64 utf-16, heh |
22:19 | <bga_> | i dont want overhead |
22:20 | <TabAtkins> | bga_: Then shrug. |
22:27 | <Hixie> | lordy, window.external interop is poor |
22:48 | <jamesr> | Hixie: yt? |
22:48 | <Hixie> | yeah |
22:48 | <Hixie> | sup |
22:48 | <jamesr> | so about the canvas AX stuff |
22:49 | <jamesr> | is this the use case in mind: http://webstuff.nfshost.com/examples/canvas_form.html ? |
22:49 | <Hixie> | no |
22:49 | <Hixie> | it's more about buttons and list boxes |
22:49 | <Hixie> | text editors in canvas don't make sense |
22:49 | <jamesr> | are they different? |
22:50 | <Hixie> | see http://www.whatwg.org/specs/web-apps/current-work/complete.html#best-practices |
22:50 | <erlehmann> | what |
22:50 | <erlehmann> | madness |
22:50 | <erlehmann> | jamesr, who created this stuff and whyyyyyyyyyyyy? |
22:50 | <jamesr> | lemme make a version with buttons and list boxes, then |
22:51 | <jamesr> | erlehmann: i made that page to try to figure out wtf people are talking about with this stuff |
22:51 | <jamesr> | because the text editing case is pretty dumb |
22:51 | <mpilgrim> | all roads lead to bespin |
22:51 | <jamesr> | not even bespin uses a canvas any more |
22:52 | <mpilgrim> | doesn't matter, that's what kicked off the frenzy a few years ago |
22:52 | <mpilgrim> | they've been going non-stop ever since |
22:52 | <mpilgrim> | srsly |
22:52 | <erlehmann> | i have never seen something like this before, srsly |
22:52 | mpilgrim | shrugs |
22:53 | <jamesr> | Hixie: what do you mean by list box? <select> ? |
22:54 | <jamesr> | select elements are fairly magical |
22:54 | <Hixie> | or radio buttons, yeah |
22:55 | <Hixie> | i just mean the general concept |
22:55 | <jamesr> | there's no way for a canvas to closely emulate a pop-out <select> |
22:55 | <Hixie> | sure |
22:55 | <Hixie> | i don't mean close emulation |
22:56 | <Hixie> | i just mean a selection mechanism |
22:56 | <jamesr> | gotcha |
22:57 | <Hixie> | basically the extent to which interactivity makes sense on a canvas, excluding cases that only make sense on a canvas e.g. gameplay or graphic manipulation, is limited to really simple stuff like buttons, menus, toggling ui, that kind of thing |
22:57 | <Hixie> | anything beyond that and really what's the point, one should just use the real underlying elements |
22:57 | <Hixie> | like <select> or <input> |
23:14 | <jamesr> | so this, then? http://webstuff.nfshost.com/examples/canvas_form.html |
23:15 | <jamesr> | i haven't made the thing really clickable so you have to edit the checked state via the keyboard |
23:15 | <mpilgrim> | why do you hate mouse users?!? |
23:15 | <jamesr> | paaaah hit testing |
23:17 | <mpilgrim> | be sure to also emulate clicking on the label as a proxy for clicking on the checkbox itself |
23:17 | <jamesr> | well that's the thing, there are a _lot_ of behaviors here |
23:17 | <mpilgrim> | and drawing a focus ring on tabbing |
23:17 | <jamesr> | like dragging in/out of the checkbox |
23:17 | <jamesr> | i do draw the focus ring on tabbing |
23:17 | <jamesr> | i made that work |
23:17 | <mpilgrim> | i forget what we're doing, exactly |
23:18 | <jamesr> | Hixie: so what i'm getting at is if i have a checkbox, shouldn't i just be using an <input type="checkbox"> instead? |
23:18 | <jamesr> | and if not what behaviors of a real checkbox are we trying to allow canvas authors to emulate and what behaviors are we just ignoring? |
23:20 | <jamesr> | i guess i don't understand why focus ring is so special |
23:29 | <Hixie> | jamesr: in general i agree with you |
23:31 | <jamesr> | ok, so given this sort of use case do you think there's a significant difference to hiding the <input type="checkbox"> within the <canvas> vs hiding it with CSS? |
23:31 | <jamesr> | i have it invisible via position:absolute; top:-50000px and make it focusable via tabindex and a click listener |
23:32 | <Hixie> | CSS is merely decorative, if you're changing the semantics of the page with CSS then you're doing it wrong |
23:32 | <Hixie> | so i don't really see how CSS is relevant here |
23:33 | <Hixie> | jamesr: note that there are several "canvas AX" things, and they have rather different purposes |
23:33 | <jamesr> | i'm not changing the semantics, i'm changing the presentation of that checkbox |
23:33 | <jamesr> | Hixie: i'm trying to understand how they fit together |
23:34 | <Hixie> | i think it'd be a bit confusing for there to be two checkboxes, one on the canvas and one next to the canvas |
23:34 | <Hixie> | and i doubt any authors would do that |
23:34 | <jamesr> | in the visual presentation, yes |
23:34 | <jamesr> | that's what i am controlling with css |
23:34 | <Hixie> | css is optional |
23:34 | <Hixie> | the page should still work if i just turn off all css |
23:34 | <jamesr> | as far as the document model in the OO sense having them be sibling or child/parent does not seem particularly relevant |
23:35 | <Hixie> | it's relevant in that in the sibling case, you're saying they're both there, whereas in the child case, you're saying one replaces the other |
23:35 | <karlcow> | I have to remember that. I need more brain cycles on it "[18:37] <jamesr> i'm not changing the semantics, i'm changing the presentation of that checkbox" |
23:36 | <jamesr> | well, i'm not sure the document has valid semantics in either case |
23:36 | <jamesr> | at least to what my mind |
23:36 | <Hixie> | "valid semantics"? |
23:36 | <karlcow> | aha another one. |
23:37 | <karlcow> | it's becoming meta :) |
23:37 | <karlcow> | EIOUkdj soiu34897KJIu fjf 34jhkhf ksljd <- invalid semantics? |
23:37 | <Hixie> | jamesr: one problem we're trying to solve is how to make pages accessible to users with limited visibility, who use screen readers to orient themselves, but still see the page |
23:37 | <Hixie> | jamesr: for that, you want just one checkbox |
23:38 | <Hixie> | jamesr: but you need a way to expose it and its state to the AX tools, while rendering it using canvas |
23:38 | <Hixie> | jamesr: so by putting it as a child, we're saying that the canvas is being used for the rendering, but the checkbox element (<input type=checkbox>) "represents" the checkbox for the purposes of the AX tool. |
23:39 | <Hixie> | jamesr: (and for the purposes of conveniently having somewhere to keep track of sub-canvas focus) |
23:39 | <Hixie> | jamesr: (for keyboard users) |
23:42 | <Hixie> | jamesr: if you're around tomorrow i can come over and try to see if i can explain it in person |
23:43 | <Hixie> | jamesr: as your input on this stuff would be very much welcome :-) |