| 00:11 | <Hixie> | benschwarz: here |
| 00:11 | <Hixie> | benschwarz: commented on the post |
| 01:10 | Hixie | makes some slight changes to the top of the spec |
| 01:10 | jtcranmer | stares cross-eyed at the streams spec |
| 03:15 | <SamB> | Hixie: ... interesting choice of mode for the html spec ... |
| 03:28 | <MikeSmith> | wow that's a lot of green boxes |
| 03:28 | <MikeSmith> | I like how you've gone with the Japanese spelling of "developers" there in the URL |
| 03:46 | <SamB> | fatal: repository 'https://bitbucket.org/ms2ger/anolis/'; not found |
| 03:46 | <SamB> | :-( |
| 04:12 | <Hixie> | SamB: yeah... i think it needs something else... but what we had before was worse, so... |
| 04:12 | <Hixie> | SamB: any ideas? |
| 04:13 | <SamB> | Hixie: not really |
| 04:13 | <Hixie> | :-( |
| 04:13 | <Hixie> | same here |
| 04:13 | <Hixie> | MikeSmith: oops :-) fixed |
| 05:05 | <SamB> | <dt>An end tag whose tag name is "sarcasm"</dt> |
| 05:05 | <SamB> | ;-) |
| 08:01 | <annevk> | Can someone take a look at https://github.com/w3c/web-platform-tests/issues/923 maybe? |
| 08:06 | <jgraham> | annevk: Why? |
| 08:07 | <annevk> | jgraham: seems to be blocking someone attempting to implement minlength |
| 08:08 | <jgraham> | OK. Not sure I know the editing stuff well enough to know theright fix |
| 08:08 | <annevk> | jgraham: https://bugzilla.mozilla.org/show_bug.cgi?id=932755 |
| 08:09 | <birtles> | annevk, jgraham: I'm trying to set up a folder for web-animations on web-platform-tests. Do I have to do anything to be able to review pull requests to that folder? |
| 08:09 | <birtles> | I sent a pull request last week (https://critic.hoppipolla.co.uk/r/1302) although I should probably tweak those tests a bit |
| 08:10 | <annevk> | Hey birtles, I don't really know, I think jgraham and/or darobin can set you up |
| 08:10 | <birtles> | annevk: cheers |
| 08:11 | <jgraham> | birtles: You don't need anything to be able to review PRs, although obviously reviewing your own PR isn't normal :) |
| 08:11 | <annevk> | birtles: out of curiosity, how did you guys settle the second vs microsecond debate? |
| 08:11 | <birtles> | jgraham: ok, so maybe I can just ask one of the other editors/implementors to review it |
| 08:11 | <birtles> | annevk: yeah, milliseconds it is |
| 08:11 | <birtles> | it's fixed in the spec, being patched in blink and polyfill |
| 08:12 | <birtles> | annevk: oh *how*, basically we just did what the tag told us |
| 08:12 | <annevk> | birtles: was more interested in the former :-) |
| 08:13 | <birtles> | annevk: former = seconds? what the resolution was? |
| 08:15 | <annevk> | birtles: I was interested in what you settled on, sorry for the confusion |
| 08:15 | <birtles> | k |
| 08:20 | <jgraham> | birtles: Have some review |
| 08:21 | <birtles> | jgraham: thanks! |
| 10:08 | <jgraham> | So you don't actually need user interaction to set the dirty flag on form controls, right? |
| 10:08 | <jgraham> | In which case all the execCommand stuff is unneeded |
| 10:21 | <zcorpan> | setting .value makes it dirty |
| 10:22 | <zcorpan> | but maybe not for checkboxes? |
| 10:23 | <jgraham> | Pretty sure what's already there doesn't work for checkboxes either |
| 10:26 | <jgraham> | In unrelated news, it looks like the unload-a-document tests are now the most unstable web-platform-tests |
| 10:27 | <jgraham> | In gecko at least |
| 10:27 | <jgraham> | (although not *only*) |
| 10:27 | <jgraham> | It looks a lot like the session storage is sometimes dirty |
| 10:27 | <jgraham> | Could replace that with a server-side script I guess |
| 10:28 | <jgraham> | Or maybe just use a unique token for each run |
| 10:28 | <jgraham> | Although I am not really sure this is the problem |
| 10:52 | <zcorpan> | i thought navigation was already interoperable and doesn't need tests |
| 10:53 | <jgraham> | Hmm? |
| 10:55 | <jgraham> | In yet more news |
| 10:55 | <jgraham> | It is very frustrating |
| 10:55 | <jgraham> | There are quite a few tests depending on w3c-test.org |
| 10:55 | <jgraham> | Which need to be fixed |
| 10:56 | <jgraham> | But the rabbit hole goes deeper as some of the tests turn out to believe they are running on port 80 |
| 10:56 | <jgraham> | And fixing this is taking too much time |
| 11:04 | <jgraham> | These dnd tests, for example, are soul-crushing |
| 11:04 | <jgraham> | wilhelm: I blame you :p |
| 11:38 | <zcorpan> | jgraham: http://w3cmemes.tumblr.com/image/32354094056 |
| 11:43 | <jgraham> | zcorpan: Sure, but why did you mention it now? unload-a-document? |
| 11:43 | <jgraham> | Those are websockets tests |
| 11:43 | <jgraham> | Although depend on navigation |
| 11:43 | <zcorpan> | jgraham: yeah |
| 11:43 | <jgraham> | Ah, OK |
| 11:44 | <hsivonen> | annevk: what's the twitter handle for Encoding Standard? I thought @encoding, but it looks like it's not it. |
| 11:44 | <zcorpan> | hsivonen: http://encoding.spec.whatwg.org says it's https://twitter.com/encodings |
| 11:45 | <hsivonen> | zcorpan: thanks |
| 11:52 | <wilhelm> | jgraham: I blame Tarquin! |
| 12:13 | <jgraham> | TabAtkins: Looks like https://critic.hoppipolla.co.uk/r/1364 is one for you once zcorpan has finished it? |
| 12:20 | <zcorpan> | now i wonder why http://w3c-test.org/submissions/927/selectors/attribute-selectors/attribute-case/syntax.html doesn't show up |
| 12:20 | <zcorpan> | MikeSmith: ^ |
| 12:32 | <MikeSmith> | zcorpan: dunno but maybe the script is wedged |
| 12:33 | <MikeSmith> | maybe you don't have the right perms |
| 12:33 | <MikeSmith> | it says you're just Collaborator |
| 12:34 | <MikeSmith> | hmm something borked |
| 12:55 | <MikeSmith> | zcorpan: github logs show the hook ran successfully |
| 12:55 | <zcorpan> | MikeSmith: weird |
| 12:58 | <MikeSmith> | grepping the log file is made more difficult by the fact it's full of binary data |
| 13:01 | <MikeSmith> | hmm log seems to indicate it's not gettin the signature it expects |
| 13:02 | zcorpan | *poof* |
| 13:19 | <annevk> | Haha, my landlord is such a troll. Finally replies after months, asks for a swift reply |
| 14:07 | <zewt> | browsers need an option to force session cookies to be regular persistent cookies |
| 14:07 | <zewt> | the concept doesn't even make sense now, i keep browser windows open for a month at a time, so it just means i have to log into a bunch of random sites for no good reason after i restart the browser |
| 14:08 | <zewt> | that or the browser could persist the session cookies when it restores tabs, i guess |
| 14:45 | <annevk> | JakeA: it seems we forgot about form-action |
| 14:46 | <JakeA> | annevk: As a context? |
| 14:46 | <annevk> | JakeA: yes |
| 14:46 | <JakeA> | annevk: Ahh yes, we need that |
| 14:46 | <JakeA> | annevk: Can you make a ticket for that? |
| 14:46 | <annevk> | JakeA: I guess I'll add it to Fetch and then whenever you sync with Fetch... |
| 14:46 | <JakeA> | annevk: +1 |
| 14:46 | annevk | is reviewing CSP to make sure CSP integrates with Fetch |
| 14:47 | <annevk> | Hopefully that makes it easier down the line to evaluate how SW fits into all this |
| 14:51 | <annevk> | frame-ancestors seems somewhat tricky too |
| 15:25 | <dglazkov> | good morning, Whatwg! |
| 15:33 | <annevk> | JakeA: emailed some questions related to this to public-webappsec |
| 15:34 | <annevk> | JakeA: http://fetch.spec.whatwg.org/#concept-fetch has a placeholder hook for CSP now |
| 15:34 | <annevk> | JakeA: next I guess is placeholder hooks for SW |
| 15:34 | <JakeA> | annevk: This is really cool. I can't imagine the amount of crawling through implementations and specs went into this |
| 15:52 | <smaug____> | annevk: xhr.responseURL isn't in anyway bound to http, right? |
| 15:53 | smaug____ | is reviewing something |
| 15:53 | <annevk> | smaug____: no |
| 15:55 | <annevk> | smaug____: it's the "final request url" basically |
| 15:56 | <annevk> | smaug____: adjusted for redirects and HSTS |
| 15:56 | <smaug____> | annevk: with data: it would be just the url |
| 15:56 | <smaug____> | and so on |
| 15:56 | <annevk> | yup |
| 15:57 | <smaug____> | for some reason the patch limited it to http(s) |
| 15:58 | <annevk> | it'd be interesting to hear why he/she did that |
| 15:59 | <smaug____> | I guess because there happened to be nice helper method to get httpchannel :) |
| 16:00 | <smaug____> | (this might be his second patch or so) |
| 16:00 | <annevk> | Hopefully one day Fetch is actually a module in browsers |
| 16:01 | <annevk> | Servo could do it right |
| 16:01 | <annevk> | And then the other browsers get jealous |
| 16:01 | <annevk> | And then ... and then profit |
| 16:04 | <jgraham> | annevk: Well that doesn't obviously seem to be the way that servo is going |
| 16:05 | <jgraham> | It seems to be relying on some third-party lib for the network bits, and I guess that won't implement Fetch directly |
| 16:06 | <annevk> | jgraham: I think at this point they are probably not implementing much of data/blob/http handling correctly, let alone things like CSP and such |
| 16:06 | <jgraham> | annevk: They aren't, but I don't know of plans to implement their own http |
| 16:08 | <jgraham> | Basically I think no one is really working on the network layer in servo, so expecting it to come out matching specs that people outside the web community might be unaware of seems optimistic |
| 16:12 | <annevk> | Sooner or later they'll run into questions as to how bits of XMLHttpRequest need to work and learn |
| 16:12 | <annevk> | Not too worried about that. The reason Servo can do this is because they don't have extension complexity |
| 16:21 | <jgraham> | Well XHR is supposed to be done this summer by a GSoC student, so we'll see how that pans out |
| 16:27 | <daurnimator> | sigh; so apparently localStorage in Safari private browsing doesn't work |
| 17:34 | <KevinMarks_> | has anyone done a survey of what ids look like on the web in the wild? Like Hixie did for classes? |
| 17:35 | <KevinMarks_> | come to that, what fragment links look like on the web too? I bet the dominant one is just # |
| 17:37 | <paul_irish> | KevinMarks_: for back-to-top ? |
| 17:38 | <KevinMarks_> | no, all the pretend links put in to be overridden by js |
| 17:38 | <paul_irish> | Ah yes. :) For sure. |
| 17:38 | <jory> | I'd be really surprised is something other than '#' turned out to be the choice of most people. |
| 17:39 | <KevinMarks_> | how do you mean, jory? |
| 17:40 | <jory> | In almost every project I've worked on where we've wanted to use anchors but have their behaviour completely dictated by the JS, we've used '#' as the href. |
| 17:40 | <KevinMarks_> | I'm probably being unclear - I meant grepping a decent chunk of the web for links with fragments in, and seeing what the fragments look like |
| 17:41 | <jory> | Ooo, sounds like an interesting study. I'd love to see the results of something like that. |
| 17:41 | <KevinMarks_> | that, combined with a survey of what actual IDs look like |
| 17:43 | <KevinMarks_> | (I'm getting at the fragmention by default idea here) http://www.kevinmarks.com/poemfragmentions.html##cannot+contain |
| 18:32 | <jcgregorio> | KevinMarks: Why the space character as the trigger, aren't there a bunch of characters that are valid after the hash that aren't valid in an ID? |
| 18:33 | <KevinMarks_> | I thought so, but nope. IDs can have anything in except a space |
| 18:33 | <KevinMarks_> | http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#the-id-attribute |
| 18:33 | <KevinMarks_> | see the note in green |
| 18:34 | <KevinMarks_> | you could put %20 in an id I suppose but that's still OK |
| 18:35 | <KevinMarks_> | it's actually the other way round - fewre valid chars in a fragment, but you can escape them reliably |
| 18:36 | <KevinMarks_> | basically, I made up the syntax before reading the specs, then realised that I could make it even simpler |
| 18:37 | <KevinMarks_> | ## makes a URL invalid per http://tools.ietf.org/html/rfc3986#appendix-A |
| 18:41 | <jcgregorio> | wow, that's a surprising, and a pain, space is your only escape hatch |
| 18:42 | <KevinMarks_> | actually, I think it's good and simplifying. |
| 18:43 | <jcgregorio> | well, if you gobble up any space for fragmentations then there's no more escape hatches |
| 18:45 | <jcgregorio> | for example, {} aren't valid in a URI, they were reserved for future expansion |
| 18:45 | <jcgregorio> | and we used them in URI Templates |
| 18:45 | <KevinMarks_> | in fact, you don't even need a space, as you can tell if it's an ID quickly... |
| 18:45 | <jcgregorio> | and in URI Templates = ! @ | and , are reserved for future extensions in URI Templates |
| 18:47 | <jcgregorio> | right, but what if after fragmentations ships someone comes up with another cool idea |
| 18:47 | <jcgregorio> | how would they differentiate between a fragmentation and their cool new thing |
| 18:48 | <jcgregorio> | I would suggest having fragmentations start with +! and leave other fragments that start with +<some other char> as a future extension point |
| 18:52 | <KevinMarks_> | I think #! fragments are already used for various things |
| 18:53 | <jcgregorio> | ok +%, you get the idea :-) |
| 18:53 | <KevinMarks_> | and searching for ! or % is a bit of a weird case |
| 18:53 | <jcgregorio> | +: |
| 18:54 | <jcgregorio> | true, but you could still do it, +!!, if you use ! as your character |
| 19:10 | <JonathanNeal> | KevinMarks_: messed with http://sandbox.thewikies.com/fragmentions/example.html since the changes? jcgregorio: i like what you’re saying about closing all of the escape hatches. |
| 19:10 | <KevinMarks_> | I don't think we are though |
| 19:11 | <KevinMarks_> | currently ID eats all possible fragments iff it exists. Fragmention catches some more cases |
| 19:11 | <KevinMarks_> | still room for other things to catch still more |
| 19:11 | <JonathanNeal> | Hmm, I agree. |
| 19:15 | <KevinMarks_> | we'll only catch ! or * or whatever in a fragment if both someone makes such a fragment AND the body contains that character sequence |
| 19:15 | <JonathanNeal> | I just had not thought of it that way. |
| 19:30 | <jcgregorio> | KevinMarks: what's a case that wouldn't be an id nor a fragmentation? |
| 19:30 | <jcgregorio> | I think I see what you are saying, in that something being an id or fragmentation is context dependent, depending on what's on the page |
| 19:30 | <jcgregorio> | but that's no way to write a spec ;-) |
| 19:31 | <KevinMarks_> | any sequence that isn't in the document |
| 19:31 | <KevinMarks_> | fragmention BTW (i think you're being autocorrected) |
| 19:31 | <Domenic_> | Woah a wild Hixie appears on Twitter! |
| 19:32 | <Hixie> | hm? |
| 19:32 | <Hixie> | i've posted 6 times this month |
| 19:32 | <Hixie> | that's more times than i've posted publicly on g+ in the same time frame |
| 19:33 | <Hixie> | 7 times on twitter in february |
| 19:34 | <Domenic_> | This was the first one that was @-ed to someone I follow |
| 19:34 | <Domenic_> | so the first one I saw |
| 19:35 | <Hixie> | aah |
| 19:35 | <Hixie> | yeah i basically only use it to reply to people |
| 19:35 | Hixie | thinks the 140 character limit is absurd |
| 19:36 | <jcgregorio> | KevinMarks: autocorrected by my own fingers :-) |
| 19:37 | <Hixie> | ok. compare the top of http://www.whatwg.org/specs/web-apps/current-work/multipage/ to the top of http://www.whatwg.org/specs/web-apps/current-work/ |
| 19:37 | <Hixie> | poll: which do you prefer? |
| 19:37 | <Hixie> | bonus question: do you have any better ideas for making this more approachable? |
| 19:38 | <Domenic_> | I prefer the multipage version because it's loaded whereas the singlepage version is still blank ;) |
| 19:38 | <Hixie> | yeah well i mean aside from that :-P |
| 19:39 | <Domenic_> | Hmm this is nicer. Hard to say. |
| 19:39 | <jcgregorio> | Hixie: maybe color code for function? |
| 19:39 | <Hixie> | jcgregorio: good idea. which colours for which buttons? |
| 19:40 | <jcgregorio> | irc, twitter and mailing list in blue |
| 19:41 | <jcgregorio> | file a bug, open bugs, and email the editor in red |
| 19:41 | <KevinMarks_> | jcgregorio: there's already a multistage reolution algorithm here: http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#the-indicated-part-of-the-document |
| 19:42 | <KevinMarks_> | so before #8, we insert fragmention processing to find the target be searching the text for the decoded fragid and picking the smallest containing element |
| 19:43 | <KevinMarks_> | so you can't currently use "top" as a fragmention |
| 19:43 | <KevinMarks_> | and any other future ones can insert themselves there |
| 19:44 | <Hixie> | jcgregorio: trying that, thanks... |
| 19:45 | <jcgregorio> | Hixie: and all the versions multipage/onepage/pdf/dev as another color |
| 19:45 | <jcgregorio> | sorry, I run out of ideas outside of the three primary :-) |
| 19:45 | <Hixie> | :-) |
| 19:46 | <Hixie> | i tried using https://kuler.adobe.com/create/color-wheel to pick the colours, but they seem kinda ugly |
| 19:46 | <KevinMarks_> | funny how all chat-related things are blue |
| 19:46 | <Hixie> | (using "whatwg green", 3C790A, as the base) |
| 19:47 | <Hixie> | hm, actually, it does kinda work |
| 19:47 | <TabAtkins> | KevinMarks_: Dont' pay any attention to 3986. Read the URL spec isntead. |
| 19:47 | <Hixie> | jcgregorio: http://www.whatwg.org/specs/web-apps/current-work/ |
| 19:48 | <TabAtkins> | KevinMarks_: http://url.spec.whatwg.org/ |
| 19:48 | <KevinMarks_> | fair, TabAtkins, but the same is true there |
| 19:48 | <TabAtkins> | All right, cool. Didn' |
| 19:48 | <TabAtkins> | Just didn't want you looking at the wrong thing. ^^; |
| 19:49 | <KevinMarks_> | a fragment can have http://url.spec.whatwg.org/#url-code-points which don't include # |
| 19:49 | <KevinMarks_> | so my ## is still invalid |
| 19:49 | <KevinMarks_> | derp |
| 19:49 | <KevinMarks_> | even though browsers seem to parse ti happily |
| 19:51 | <jcgregorio> | Hixie: http://tinyurl.com/mh3za2q |
| 19:51 | <jcgregorio> | my attempt at a pallette |
| 19:51 | <Hixie> | jcgregorio: yeah, i was just playing with it again and came to more or less the same one |
| 19:51 | <jcgregorio> | :-) |
| 19:51 | <Hixie> | ok, orange, i guess, for the remaining ones. and green for the versions. |
| 19:53 | Hixie | regens |
| 19:57 | <Hixie> | jcgregorio: http://www.whatwg.org/specs/web-apps/current-work/ look ok? |
| 19:57 | <KevinMarks_> | looks a bit like http://www.wired.com/images_blogs/threatlevel/2009/09/dhs-threat1.jpg |
| 19:58 | <Hixie> | i'd love to find an even better way of doign this |
| 19:58 | <Hixie> | i'm not really happy with it |
| 19:58 | <Hixie> | it's better than the <dl>, but... |
| 19:59 | <jcgregorio> | yeah, I like the idea, but the colors seem a little strong |
| 20:03 | Hixie | tries halving the saturation of each one |
| 20:06 | <Hixie> | no, that doesn't help. maybe halving the lightness... |
| 20:09 | <Domenic_> | Hixie: http://forums.whatwg is not a complete URL |
| 20:09 | <Hixie> | oops |
| 20:09 | <Hixie> | fixed |
| 20:09 | <Hixie> | thanks |
| 20:10 | <KevinMarks_> | no whatwg tld yet? |
| 20:10 | <Hixie> | jcgregorio: what do you think of the current colours? |
| 20:10 | <KevinMarks_> | we're behind .guitars |
| 20:10 | <Hixie> | KevinMarks_: not on this budget ;-) |
| 20:10 | <Domenic_> | current colors seem pretty reasonable |
| 20:11 | <Hixie> | try reloading to make sure you're seeing the current ones |
| 20:11 | <Hixie> | i changed them 3 times in the last 3 minutes |
| 20:11 | <KevinMarks_> | pretty good; the orange is a bit turdy |
| 20:11 | <Hixie> | :-) |
| 20:11 | <Hixie> | KevinMarks_: i don't want to know what you're eating :-P |
| 20:11 | <Domenic_> | "open bugs" sounds like a verb phrase not a noun phrase |
| 20:11 | <jcgregorio> | Hixie: yeah, that's a lot better |
| 20:12 | <Domenic_> | oh hmm these darker ones are interesting |
| 20:12 | <Hixie> | Domenic_: good point |
| 20:12 | <Hixie> | changed to "View Open Bugs" |
| 20:12 | <Hixie> | ok. i'm gonna go with this. |
| 20:12 | <Hixie> | if anyone has any ideas for a more radical change, please do let me know. |
| 20:12 | <Domenic_> | fun times |
| 20:13 | <Domenic_> | do you feel there's value in separating the HTML FAQ from the WHATWG FAQ? |
| 20:13 | <Hixie> | there's an HTML FAQ? |
| 20:13 | <Hixie> | oh you mean the HTML subsectiosn of the WHATWG FAQ? |
| 20:13 | <Domenic_> | Well whatwg.org/faq currently serves as both |
| 20:14 | <Domenic_> | e.g. the HTML spec links to the WHATWG FAQ as "faq" |
| 20:14 | <SamB> | wait, you mean there's a non-HTML section? |
| 20:14 | <Hixie> | nah, i think it's fine. if people have questions about other specs I'm happy for those questions to be in that list too. |
| 20:14 | <Hixie> | we already have too many places to point people to |
| 20:14 | <Hixie> | witness this very long list of buttons |
| 20:14 | <Hixie> | or the whatwg.org home page |
| 20:14 | <Domenic_> | yeah that's fair. |
| 20:14 | <Hixie> | let's not add more :-) |
| 20:15 | <KevinMarks_> | I do have a veggie lasagne that is close to that colour |
| 20:15 | <Domenic_> | I guess things just get a bit confused e.g. "which parts of the spec are stable" and onward inside "The WHATWG Process" are somewhat HTML-specific, whereas the rest of that section is about the WHATWG and Living Standards generally. |
| 20:15 | <Hixie> | yeah that stuff should be cleaned up |
| 20:15 | <Hixie> | feel free to hack at it if you want |
| 20:16 | <Hixie> | i'll get to it eventually otherwise |
| 20:16 | <Domenic_> | When I was reading it for the first time I wasn't clear how much applied to general WHATWG working model vs. HTML only |
| 20:16 | <Domenic_> | I might do that yeah |
| 20:16 | <Domenic_> | do i even have an account? hmm, I've never wanted to add a <meta> tag, so unclear. |
| 20:17 | <Hixie> | e-mail? i'll add you one |
| 20:17 | <Domenic_> | domenic⊙dc |
| 20:17 | <Hixie> | multipage spec is updated, in case anyone lurking was too scared to open the single-page spec but wants to know what we were chatting about :-) |
| 20:18 | <Hixie> | done |
| 20:18 | SamB | wonders about the system requirements of the single-page spec |
| 20:18 | <Hixie> | ok i gotta run before the cafes close. back in a bit. |
| 20:19 | <jcgregorio> | Hixie: the only problem is the illusory dots that appear at the intersections |
| 20:19 | <Hixie> | wow i didn't see those until you pointed them out and now i feel almost ill :-P |
| 20:19 | <Hixie> | yikes |
| 20:19 | <Hixie> | bbl |
| 20:20 | <jcgregorio> | yeah, I didn't see it until I was a little further from the monitor |
| 20:20 | <mathiasbynens> | Hixie: the link to http://validators.whatwg.org/ is broken |
| 20:21 | <SamB> | Hixie: the METAFONTbook has some tips about that ;-P |
| 20:21 | <mathiasbynens> | Hixie: as in, the link works, but the URL doesn’t resolve for me |
| 20:21 | <SamB> | or, well, at least an example |
| 20:37 | <JonathanNeal> | So, on the pros/cons of # versus ## for fragmentions. Pros for # is that its characters are valid, it falls back to ID. Pros for ## is that it is unique, and does not conflict with ID. The con for # is the reserved word "top" and other taken IDs. The con for ## is its invalidity. Thoughts? Disagreements? |
| 20:41 | <jcgregorio> | actually, "con for # is the reserved work "top" and other taken IDs" isn't true because they don't have spaces, right? |
| 20:42 | <JonathanNeal> | jcgregorio: if we made at least one space character a requirement for fragmentions, perhaps. |
| 20:54 | <SamB> | JonathanNeal: what invalidity? |
| 20:54 | <SamB> | I mean, what actually cares? |
| 20:54 | <JonathanNeal> | SamB: page.html##term is invalid because of the ##. The spec and validators care. Browsers do not care. |
| 20:55 | <SamB> | which validotors? regular ones, or just stuff like link checkers? |
| 20:55 | <SamB> | er, *validators |
| 20:56 | <SamB> | JonathanNeal: also is there a thread or a draft this discussion is referring to? |
| 20:56 | <JonathanNeal> | There are at least two, SamB, one is https://github.com/chapmanu/fragmentions |
| 20:57 | <Hixie> | mathiasbynens: thanks, fixed |
| 20:57 | <SamB> | and, er, has anyone mentioned a more powerful mechanism for use on html? |
| 20:57 | <Hixie> | SamB: any idea what the tips are? :-) |
| 21:00 | <SamB> | hmm, what intersections are we talking about here? |
| 21:00 | <zewt> | JonathanNeal: pages might be using ##foo in scripts; don't know how to find out |
| 21:00 | <SamB> | zewt: clearly program the browser to spy on the users |
| 21:00 | <JonathanNeal> | SamB: the other is http://indiewebcamp.com/fragmention |
| 21:00 | <zewt> | duh |
| 21:01 | <zewt> | when I use custom hashes for script navigation i normally run the hash part through encodeURIComponent, which avoids that issue |
| 21:01 | <zewt> | JonathanNeal: if there is some unused part of the URL hash space to be used, i'd strongly question whether it's worth using it up on this feature... |
| 21:02 | <Hixie> | SamB: those on the html spec's new header |
| 21:02 | <SamB> | ah |
| 21:03 | <SamB> | for some reason I was looking at the frontpage |
| 21:03 | <JonathanNeal> | zewt: are you referring to ## versus #? If so, that is an argument in favor of ##. |
| 21:03 | <SamB> | oh, I think these are different dots |
| 21:03 | <SamB> | I don't know how to deal with them |
| 21:03 | <zewt> | i've used #? myself |
| 21:04 | <zewt> | with URLs that look like http://foo.com/server/path?server=data#client/path?client=data (where client/path may be empty) |
| 21:04 | <zewt> | so I get analogous paths and key/values, for both the server (path and query) and client (encoded into the hash) |
| 21:05 | <JonathanNeal> | zewt: in those cases, what is the probability of matching that to text on the screen? |
| 21:05 | <zewt> | no idea |
| 21:05 | <JonathanNeal> | But again, that is a chief argument in favor of ##. |
| 21:05 | <SamB> | zewt: hmm, I guess that makes sense if you've things that you don't want to interfere with caching because the server doesn't use them anyway ... |
| 21:06 | <SamB> | anyway this seems like a dumb fad |
| 21:06 | <SamB> | I want my xpath fragments! |
| 21:06 | <zewt> | well, my concern (wouldn't call it an argument at this point) is whether the feature is useful enough to use up some rare still-unused way of encoding something into the hash (if it is one) |
| 21:06 | <SamB> | maybe not so dumb for text/plain |
| 21:07 | <JonathanNeal> | Or for blogs, or long articles, or anything with text. |
| 21:07 | <SamB> | anyway, it seems like it should leave room for OTHER possible uses |
| 21:08 | <JonathanNeal> | Do you believe ## does this? |
| 21:08 | <SamB> | I mean by having some kind of a name before the, uh, query ... |
| 21:09 | <JonathanNeal> | That is what the second hash provides, no? |
| 21:12 | <SamB> | no! |
| 21:12 | <zewt> | SamB: do you mean making it something like http://foo.com##word=foo, so "##" can be used for other things and not be used up completely |
| 21:12 | <SamB> | yeah |
| 21:13 | <SamB> | preferably allowing one to still have a regular fragment, too, in case you have one of those AJAX sites that needs that to even have the right content ... |
| 21:13 | <zewt> | that's really hard, i think |
| 21:13 | SamB | already wants two fragment identifiers sometimes :-( |
| 21:14 | <zewt> | since there's no standardization about how to parse hash-as-script-data itself, which means we don't know how to pull this extra data off of it |
| 21:14 | <zewt> | could try to define something, but that could be more of a battle... |
| 21:14 | <SamB> | yeah |
| 21:14 | <SamB> | but |
| 21:15 | <zewt> | eg. with my /path?query#path?query scheme, I never put # in the right-hand side (since it always gets escaped, just like it does on the left side), so I could use /path?data#path?data##other-stuff |
| 21:15 | <zewt> | ... but that's just me, heh |
| 21:15 | <zewt> | actually, make the ## a single # in that example |
| 21:15 | <SamB> | well, that's what the spying is for! |
| 21:15 | <zewt> | (the first # of ## is the one in "data#path") |
| 21:16 | <SamB> | hmm, I was figuring you'd only count two # in a row as the extra stuff ... |
| 21:16 | <zewt> | in other words, one way you could define this is "data after the first # in the hash" |
| 21:16 | <SamB> | that seems more likely to be a problem than requiring exactly ## ? |
| 21:17 | <zewt> | rather, "after the first # in the fragment" |
| 21:17 | <zewt> | ("#foo" is the hash, "foo" is the fragment, right?) |
| 21:17 | <Hixie> | well i made a change, but it didn't help with the dots illusion like i hoped it would! |
| 21:17 | <Hixie> | bbiab, meeting |
| 21:17 | <zewt> | possibly |
| 21:17 | <SamB> | hmm, one way to get rid of the dots illusion might be actual dots? |
| 21:18 | <zewt> | it would also mean that if we have more features using that mechanism, we could say http://foo.com#client stuff#word=hello#other_stuff=world |
| 21:18 | <SamB> | Hixie: having a whole screenfull of bright shiny links at the top of the spec seems kind of excessive ... |
| 21:18 | <zewt> | where this feature looks for "#word=" (which might not be the first #thing) |
| 21:19 | <SamB> | zewt: I was figuring use e.g. ##word= |
| 21:19 | <zewt> | maybe |
| 21:19 | <SamB> | but, um, pull them out of the fragment? |
| 21:19 | <zewt> | trying to think if it makes more sense to think of this in terms of fragments or hashes |
| 21:20 | <zewt> | i think it makes sense in hashes (not so much in fragments) |
| 21:20 | <zewt> | that is, as a mental model |
| 21:21 | <zewt> | (again--just to be clear, since it's a bit obscure--the hash of a URL means it includes the delimiting "#", where fragment doesn't ... assuming I'm not getting it wrong) |
| 21:22 | <zewt> | so in terms of hashes, if you have a hash and you want to add a search link to it, you'd say myHash += "##word=" + encodeURIComponent(word) (assuming there isn't one in there already), which makes sense |
| 21:22 | <SamB> | anyway, with such a framework in place -- even if it only supported one such thing in a URL -- it'd be obvious how to allow use of xpath/css ... |
| 21:23 | <zewt> | probably missed part of the conversation, but what's the link to those? |
| 21:23 | <zewt> | oh, for styling the result? |
| 21:23 | <zewt> | (wait, that'd be css but not xpath) |
| 21:23 | <SamB> | no, I meant if you wanted to do that instead of searching for a phrase |
| 21:24 | <zewt> | just a first impression, but ew :) |
| 21:24 | <SamB> | just use ##css= or ##xpath= |
| 21:25 | <SamB> | well what if I want to find a *header* containing specific text? |
| 21:25 | <zewt> | would they have to combine, eg. ##css=h1#text=Intro |
| 21:26 | <zewt> | ("first H1 containing Intro") |
| 21:26 | <zewt> | er ##text |
| 21:26 | <SamB> | I was thinking that one would probably use xpath -- xpath can do that right? |
| 21:27 | <zewt> | i'd avoid xpath like the plague |
| 21:27 | <zewt> | css selectors are way more usable in practice, and it seems nicer that since you really have an "and" query, do the text query the same way (whether or not you're narrowing it further with css) |
| 21:27 | <SamB> | okay, so, how about an image with specific alt or title text? |
| 21:28 | <zewt> | ##css=img[alt="foo"] |
| 21:28 | <SamB> | yeah, I know how to do it; that was a motivating use case |
| 21:29 | <zewt> | i know i don't ever want to use xpath if selectors are available :P |
| 21:29 | <jensnockert> | Xpath is <3. |
| 21:29 | <zewt> | itym 3< |
| 21:29 | <SamB> | well, that's why you'd never want just xpath |
| 21:30 | <SamB> | assuming xpath doesn't have a convenient way to use selectors anyway |
| 21:30 | <zewt> | i'd avoid using xpath in a new platform feature at all; don't add two ways to do something |
| 21:31 | <zewt> | is there a realistic (not overly contrived) example of where it'd need xpath and selectors aren't enough? |
| 21:31 | <KevinMarks_> | you're all missing the point a bit - css and xpath are all about invisible document stucture, which we care about but most authors don't |
| 21:32 | <zewt> | KevinMarks_: not missing the point at all (that's one of my questions--who is the user of this?), trying to understand the goals |
| 21:32 | <KevinMarks_> | whereas fragmentions are about text content, which is what the authros of annotations, commenst and references are thinking about |
| 21:33 | <KevinMarks_> | I wrote up the thought process at http://www.kevinmarks.com/fragmentions.html |
| 21:33 | <zewt> | a css selector feature could allow UAs to have a context menu "link to this place in the document", for example |
| 21:33 | <KevinMarks_> | it came from the Annotations WG, which had a lot of intersting use cases for this |
| 21:33 | <KevinMarks_> | so can fragmentions |
| 21:34 | <KevinMarks_> | er wrokshop, not WG yet |
| 21:34 | <zewt> | (grr, what happened to browsers having a "disable page style" option; this font is hard to read) |
| 21:34 | <KevinMarks_> | the medium version is prettier https://medium.com/everything-branches-out-until/41ef2be9953f |
| 21:34 | <KevinMarks_> | I suck at design |
| 21:35 | <zewt> | (this page is rambling too much, heh) |
| 21:35 | <KevinMarks_> | it's an essay, not a spec |
| 21:35 | <KevinMarks_> | http://indiewebcamp.com/fragmention is more speccy |
| 21:37 | <KevinMarks_> | but playing with the prollyfill and browser extension we have, this works very nicely in UX becasue you can just type #words+to+link |
| 21:37 | <zewt> | really needs a qualifier like we talked about above |
| 21:38 | <zewt> | this feature probably shouldn't require users to type stuff into the URL themselves anyway; better for the UA to do it for them (eg. select text, right click, select "copy link to this text", something along those lines) |
| 21:38 | <JonathanNeal> | KevinMarks_: if someone asks for a “spec” I will link them to iwc then |
| 21:38 | <KevinMarks_> | zewt: of course |
| 21:39 | <zewt> | that is, saying "##text=xxx" instead of "##xxx" isn't a user cost |
| 21:39 | <KevinMarks_> | yes it is |
| 21:39 | <KevinMarks_> | really |
| 21:39 | <zewt> | it isn't, they're not typing it out |
| 21:39 | <KevinMarks_> | some of them are |
| 21:39 | <zewt> | and using up "##" on one isolated feature should be a complete non-starter |
| 21:39 | <KevinMarks_> | assuming "no-one every types html" is how we get xhtml |
| 21:40 | <KevinMarks_> | "using up" is such BS |
| 21:40 | <KevinMarks_> | by that logic, as IDs can contain anything, all fragments are used up now |
| 21:40 | <zewt> | (if "##" is available for use with minimal web compat issues, then let's use it in a way that doesn't pretend this feature exists in a vacuum) |
| 21:40 | <KevinMarks_> | #! is used up by IDs |
| 21:40 | <KevinMarks_> | by your definition of "used up" |
| 21:40 | <zewt> | funny, I didn't give a definition (you did, then claimed it was mine) |
| 21:41 | <zewt> | quit the hyperbole, it doesn't help the discussion |
| 21:41 | <KevinMarks_> | you said this proposal uses up the namespace |
| 21:41 | <KevinMarks_> | I say it doesn't |
| 21:42 | <zewt> | so you're saying you can still use ## for linking to a css selector alongside this feature? seems unlikely |
| 21:42 | <KevinMarks_> | yes |
| 21:42 | <KevinMarks_> | want proof? |
| 21:43 | <zewt> | ##table could mean "find the text table" or "find a <table>" |
| 21:43 | <KevinMarks_> | http://sandbox.thewikies.com/fragmentions/example.html |
| 21:43 | <zewt> | saying ##text=foo is no more of a cost than query keys (and fits next to them naturally, as a nice bonus) |
| 21:44 | <KevinMarks_> | see 'an element with an id of #b1 |
| 21:45 | <zewt> | not sure what I'm supposed to be seeing |
| 21:45 | <KevinMarks_> | I can link to a phrase with http://sandbox.thewikies.com/fragmentions/example.html#phrases+as+anchors |
| 21:45 | <zewt> | having ##table search for both the string "table" and the first <table> seems bad to me |
| 21:46 | <KevinMarks_> | is ## searching for elements an existing thing, or did you just make it up? |
| 21:46 | <zewt> | what? |
| 21:46 | <KevinMarks_> | or are you using CSS syntax? |
| 21:46 | <KevinMarks_> | http://sandbox.thewikies.com/fragmentions/example.html##b1 |
| 21:47 | <KevinMarks_> | links to the element with id "#b1" |
| 21:47 | <zewt> | the whole discussion is about the idea of using CSS selectors in the anchor (one possible future feature that might live alongside this) |
| 21:47 | <zewt> | er, in the hash |
| 21:47 | <zewt> | talking about css selectors, not just ids |
| 21:48 | <KevinMarks_> | OK, so that's a separate proposal |
| 21:48 | <zewt> | (not advocating for supporting css selectors like this, rather using it as an example of something that this would get in the way of if done wrongly) |
| 21:48 | <KevinMarks_> | frankly if you want that, go with #$ and just use jquery syntax |
| 21:48 | <zewt> | ugh |
| 21:49 | <zewt> | every new feature shouldn't need to find its own magic sequence of characters (and have to do a bunch of research to figure out the web compat implications, and make URL syntax yet weirder and weirder) |
| 21:49 | <KevinMarks_> | agreed |
| 21:49 | <KevinMarks_> | which is why i want to make this simple |
| 21:49 | <SamB> | that doesn't make sense |
| 21:50 | <SamB> | unless you mean something different by "keep this simple" than I think you mean |
| 21:50 | <zewt> | ##text=search+text##css=table>tr |
| 21:51 | <KevinMarks_> | your argument is that is less weird? |
| 21:51 | <zewt> | the idea that adding "text=" to it is such a burden that any future features should just make up their own magic characters is the sort of non-forward-thinking that lead to the mess of needing "##" in the first place |
| 21:51 | <KevinMarks_> | I say we can get rid of ## |
| 21:51 | <KevinMarks_> | and just use # |
| 21:51 | <zewt> | that isn't weird at all, it's just like the query part of the URL and could probably be parsed with the same code |
| 21:51 | <KevinMarks_> | like http://sandbox.thewikies.com/fragmentions/example.html#remote+annotation |
| 21:51 | <zewt> | well, & vs. ## is different, so not quite that |
| 21:52 | <zewt> | but the key/value scheme should be very familiar to everyone |
| 21:52 | <KevinMarks_> | & is prcessed server-side # is processed client side |
| 21:52 | <zewt> | irrelevant |
| 21:53 | <SamB> | query parameters are in fact sometimes ignored server-side and used only on the client |
| 21:53 | <zewt> | the point of ## is making it possible to use this alongside client-side hashes, at least some of them |
| 21:54 | <zewt> | for example, it could be used (in principle) with Gmail's URLs, which look like mail.google.com/mail/a/b/c#foo/bar |
| 21:54 | <zewt> | resulting in mail.google.com/mail/a/b/c#foo/bar##text=hello |
| 21:54 | <SamB> | I'm thinking something that more than one person can normally access would perhaps make more sense as an example? |
| 21:55 | <zewt> | yeah, thus "in principle" :) |
| 21:55 | <SamB> | maybe groups? |
| 21:55 | <zewt> | (doesn't mean it'd Just Work in every case, and probably wouldn't in many, but using just # would basically never work alongside client hashes) |
| 21:56 | <zewt> | incidentally, this could also be used to maybe fix the problem that you can't use id anchors at all with sites that use # for other things |
| 21:56 | <zewt> | http://foo.com#clientdata##anchor=toc interpreted like http://foo.com#toc would have been used if the clientdata stuff wasn't there |
| 21:56 | <KevinMarks_> | zewt requiring spaces in the fragmention meets all those objections |
| 21:56 | <SamB> | I don't think "client-side" is the term you want to be using though, as plain old fragments are client-side too ... |
| 21:57 | <SamB> | KevinMarks_: nooo it doesn't |
| 21:57 | <KevinMarks_> | these are frgaments |
| 21:57 | <KevinMarks_> | they are still parseable by client code |
| 21:57 | <KevinMarks_> | we just change how they resolve to target a bit |
| 21:58 | <KevinMarks_> | all your examples above have the same issue |
| 21:59 | <KevinMarks_> | I could have an element with id="#clientdata##anchor=toc" |
| 21:59 | <KevinMarks_> | which would mean that it would be the target |
| 21:59 | <KevinMarks_> | or id="#foo/bar" |
| 22:00 | <zewt> | that's the web compatibility question, or part of it: does anyone use anchors with "##" in them |
| 22:01 | SamB | already reported https://bugzilla.mozilla.org/show_bug.cgi?id=978431 about http://simonstl.com/articles/cssFragID.html ... could would happily close that as a dupe of something like what zewt is talking about |
| 22:01 | <KevinMarks_> | OK, ignore the ## |
| 22:01 | <zewt> | then what am I supposed to be answering :) |
| 22:02 | <KevinMarks_> | imagine this bit of the spec http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#the-indicated-part-of-the-document |
| 22:04 | <KevinMarks_> | has before item 8, "if fragid is a whitespace-insenstitve match for innertext within the document, the indicated part of the document is the containing element of that innertext" |
| 22:05 | <KevinMarks_> | er, s/decoded fragid/fragid |
| 22:06 | <KevinMarks_> | this doesn't stop any other use of fragments, it just adds some more cases where target is valid and potentially scrolls the document |
| 22:06 | <zewt> | it makes a total mess of other use of fragments, as I said |
| 22:06 | <KevinMarks_> | no it doesn't |
| 22:06 | <KevinMarks_> | only in the same way as IDs do |
| 22:06 | <SamB> | yeah, basically |
| 22:06 | <zewt> | no, far more, as I explained already |
| 22:06 | <SamB> | assuming by IDs you also mean NAMEs |
| 22:06 | <KevinMarks_> | IDs and NAMEs yes |
| 22:07 | <KevinMarks_> | things above 8 in the bit of spec text |
| 22:07 | <SamB> | of course, that was the first use |
| 22:07 | <KevinMarks_> | "top" too |
| 22:07 | <zewt> | if css selectors were added, http://foo.com##table could mean "scroll to the first instance of the word table", or "scroll to the first <table>" element |
| 22:07 | <zewt> | which is a total mess |
| 22:07 | <zewt> | the solution is simple and low-cost: http://foo.com##text=table |
| 22:07 | <KevinMarks_> | it also would mean "Scroll to element with id="#table" like it is now |
| 22:08 | <SamB> | you can sort of understand them not thinking ahead so well at the beginning |
| 22:08 | <KevinMarks_> | scroll to Scroll to element with id="#text=table" |
| 22:08 | <zewt> | new browsers supporting this would never tried to scroll to "#table", obviously |
| 22:08 | <KevinMarks_> | everything you say about this is true of ID already |
| 22:08 | <SamB> | but now that we've already got lots of ideas about what fragments ought to be able to do, *and* conflicts between existing uses ... |
| 22:08 | <zewt> | and this is even more specific--the changes of there being a link to an id "#text=table" is smaller |
| 22:09 | <zewt> | so it both reduces the chance of web compat issues, and allows future features much more easily |
| 22:10 | <zewt> | if the only counterargument is "man, I don't want to have to type #text= once in a while", well... :) |
| 22:10 | <KevinMarks_> | you are making categorical statements about this proposal that are untrue |
| 22:11 | <zewt> | your arguments seem to be of the form "no it's not" and "that's untrue", which nobody can do much with |
| 22:12 | <KevinMarks_> | clearly we do need that survey of existing IDs adn fragments on the web to settle the probablistic arguments |
| 22:12 | <zewt> | anyway, time to go home |
| 22:12 | <zewt> | back in a bit |
| 22:12 | <KevinMarks_> | no, my argument is that IDs already consume the namespace |
| 22:12 | <SamB> | KevinMarks_: longer things are less likely to occur than substrings of them |
| 22:12 | <KevinMarks_> | except fro spaces |
| 22:12 | <Hixie> | SamB: agreed... what do you suggest instead, though? i'm scraping the bottom of the barrel for ideas here :-( |
| 22:13 | <KevinMarks_> | so requiring spaces doesn't collide with IDs |
| 22:13 | <SamB> | is that so? |
| 22:13 | <KevinMarks_> | http://sandbox.thewikies.com/fragmentions/example.html#remote+annotation |
| 22:14 | <KevinMarks_> | decodes the fragid "remote+annotation" to "remote annotation" which cannot match an ID |
| 22:14 | <KevinMarks_> | (that link works BTW) |
| 22:15 | <KevinMarks_> | so the weak fragmentions argument requires a space |
| 22:15 | <KevinMarks_> | the strong fragmentions argument says any text that isn't an ID in the document is fair game as a fragmention |
| 22:16 | <KevinMarks_> | eg http://sandbox.thewikies.com/fragmentions/example.html#of |
| 22:16 | <KevinMarks_> | which may be overbroad |
| 22:16 | <KevinMarks_> | but still doesn't harm IDs |
| 22:16 | <SamB> | and what is so special about fragmentions that makes you think *it* should be so enshrined in the html spec? |
| 22:16 | <JonathanNeal> | what about the argument of using uncharted, presently invalid space, like ##? |
| 22:17 | <JonathanNeal> | SamB: same reason hash anchors are represented, access to content. |
| 22:17 | <KevinMarks_> | zewt says he wants that for all kinds of magic jquery style CSS stuff in some hypotherical future |
| 22:18 | <KevinMarks_> | SamB there is a huge use case for referring to text remotely |
| 22:18 | <KevinMarks_> | *text* not structure |
| 22:19 | <KevinMarks_> | effectively every reference to another work can be represented as a quotation from it |
| 22:19 | <KevinMarks_> | google is the existence proof |
| 22:20 | <KevinMarks_> | https://www.google.com/search?q=%22If+you+get+the+right+ones+in+the+right+order%22 |
| 22:20 | <KevinMarks_> | is a better anchor for the play text I'm referring to than a URL |
| 22:22 | <KevinMarks_> | heh, and my fragmentions page is now #4 for it on google |
| 22:23 | <KevinMarks_> | ten words is enough to identify that quote globally |
| 22:23 | <KevinMarks_> | 4 is probably enough for a given document |
| 22:24 | <KevinMarks_> | except for villanelles |
| 22:24 | <SamB> | that doesn't give your idea a divine right to this syntax ... |
| 22:24 | <KevinMarks_> | http://www.kevinmarks.com/poemfragmentions.html##Do+not+go+gentle+into+that+good+night.+Rage,+rage+against+the+dying+of+the+light. |
| 22:24 | <KevinMarks_> | not arguing that |
| 22:25 | <KevinMarks_> | standards are documentation, not legislation |
| 22:25 | <KevinMarks_> | I contend that this is useful, we're shipping it on the web in various places |
| 22:26 | <TabAtkins> | KevinMarks_: "all kinds of magic jquery style CSS stuff" is a misstatement. The idea of using selectors in the frag to find an element has a long history. |
| 22:27 | <KevinMarks_> | TabAtkins: got some spec text or proposals I can link to from http://indiewebcamp.com/fragmention#Related_work? |
| 22:27 | <TabAtkins> | http://simonstl.com/articles/cssFragID.html |
| 22:27 | TabAtkins | http://www.w3.org/community/cssselfrags/ |
| 22:27 | TabAtkins | https://bugs.webkit.org/show_bug.cgi?id=100841 |
| 22:28 | <KevinMarks_> | thanks! |
| 22:28 | <TabAtkins> | I literally just googled for "selectors in fragment" |
| 22:28 | <TabAtkins> | There are a bunch more. |
| 22:28 | <KevinMarks_> | yes, lots of prior art |
| 22:28 | <KevinMarks_> | all of which are complicated as heck |
| 22:29 | <KevinMarks_> | and thus wouldn't collide |
| 22:29 | <KevinMarks_> | :D |
| 22:30 | <TabAtkins> | What do you mean by "complicated as heck"? |
| 22:30 | <TabAtkins> | Simon St Laurent's last proposal is "example.com#css(.foo)" |
| 22:30 | <KevinMarks_> | I mean #css(div[class~="content"]:nth-child(2)) |
| 22:31 | <TabAtkins> | It's exactly as complicated as your selector is. |
| 22:31 | <zewt> | the thing samb and I explained it extraordinarily simple |
| 22:31 | <KevinMarks_> | is not in namespace contention with #more+complicatd |
| 22:31 | <SamB> | KevinMarks_: yes, it is |
| 22:31 | <zewt> | is not a parsable sentence |
| 22:32 | <KevinMarks_> | or rather it is already in contention with IDs |
| 22:32 | <zewt> | please restate your argument against "##text=foo", because I don't understand it |
| 22:32 | <SamB> | well, okay, not insofar as it has no parens in it, but ... |
| 22:33 | <zewt> | "##" is a hack to work around the unextensibility of the hash; if that works (isn't blocked by web compat), we should do it in a way that only has to be done once and can be reused |
| 22:33 | <zewt> | (the single-# thing I'm pretty certain is a non-starter for web compat reasons) |
| 22:33 | <KevinMarks_> | can we separate these two |
| 22:34 | <KevinMarks_> | I am interested int the web compat reasons |
| 22:34 | <KevinMarks_> | because that is the heart of this |
| 22:34 | <KevinMarks_> | can you explain how this breaks web compatibility |
| 22:34 | <SamB> | the web compat reasons are that it's going to be a pain to find and verify ONE piece of syntax to steal |
| 22:35 | <KevinMarks_> | can you rephrase that in less lodded terms please |
| 22:36 | <KevinMarks_> | you are saying this will collide with something? |
| 22:36 | <zewt> | if you have a link http://foo.com, and there's an ID "credits", what does http://foo.com#credits mean? |
| 22:36 | <KevinMarks_> | it means go to ID credits |
| 22:36 | <zewt> | you either have a web compat issue (it breaks links to the credits), or you're unable to do a text link to the string "credits"; both are bad |
| 22:36 | <KevinMarks_> | IDs win over text |
| 22:36 | <SamB> | (or, well, maybe I was going in the wrong direction ...) |
| 22:36 | <KevinMarks_> | what does http://foo.com#credits+ mean? |
| 22:37 | <zewt> | so you want a text-search-link feature that doesn't work if the page happens to have an ID with the word the user wants to link to? |
| 22:37 | <KevinMarks_> | it no longer matches that ID |
| 22:37 | <zewt> | what? that's gross |
| 22:37 | <SamB> | indeed, very gross |
| 22:37 | <zewt> | hope that's not a serious suggestion heh |
| 22:37 | <KevinMarks_> | absolutely |
| 22:37 | <zewt> | ... |
| 22:37 | <KevinMarks_> | it's what I have working |
| 22:37 | <zewt> | sorry, too insane for me to even know how to reply |
| 22:37 | <KevinMarks_> | this is how I know i'm safe |
| 22:37 | <SamB> | it doesn't really matter all that much what you have working |
| 22:38 | <KevinMarks_> | you all think this is insane, because you haven't seen it on the web |
| 22:38 | <KevinMarks_> | hence no collisions |
| 22:38 | <zewt> | no, we think it's insane because it's an ugly, nasty hack (even uglier than ##, and far less functional) |
| 22:38 | <SamB> | you have to sell it to the browser vendors ... |
| 22:39 | <KevinMarks_> | I'm hearing emotion words, not arguments |
| 22:39 | <KevinMarks_> | "ugly, nasty" is cognitive dissonance |
| 22:39 | <zewt> | we've already responded to everything you've said, and you've given little to no useful response |
| 22:39 | <KevinMarks_> | you haven't responded |
| 22:39 | <zewt> | ... |
| 22:39 | <zewt> | okay, i'm done for now :) |
| 22:39 | <TabAtkins> | Note that Media Fragments claims a relatively safe portion of the fragment syntax space just by assuming that "foo=..." is safe to claim. |
| 22:40 | <KevinMarks_> | I say that fragments with spaces in don't collide with IDs |
| 22:40 | <TabAtkins> | video.mp4#t=5s, for example. |
| 22:40 | <SamB> | TabAtkins: I heard they specifically excluded HTML though? |
| 22:40 | <TabAtkins> | We should probably make sure that everybody claims fragment syntax in the same way. |
| 22:40 | <KevinMarks_> | media fragments explicitly exclude htmls |
| 22:40 | <zewt> | TabAtkins: my suggestion is http://foo.com#ignored##key=value, because that can coexist with many client-side uses of the hash |
| 22:40 | <TabAtkins> | SamB: Not too relevant. SVG does the same thing. |
| 22:41 | <KevinMarks_> | this can coexist with client-side uses of the hash |
| 22:41 | <zewt> | (samb's originally, I think) |
| 22:41 | <SamB> | KevinMarks_: in the same link? |
| 22:41 | <KevinMarks_> | what? |
| 22:42 | <KevinMarks_> | where did "in the same link" come from? |
| 22:42 | <TabAtkins> | Actually, SVG uses "#foo()" form. |
| 22:42 | <SamB> | zewt: well, you came up with the key=value idea; my thinking was just that there should be some sort of a name to indicate which new thing ... |
| 22:42 | <TabAtkins> | zewt: Yeah, I prefer using = over function syntax. |
| 22:42 | <SamB> | KevinMarks_: see the example above? |
| 22:43 | <KevinMarks_> | I do, yes what does it represent |
| 22:43 | <zewt> | fwiw, i think it could be defined simply as "the string #text= followed by characters other than #", with no higher-level "parse out key/values" algorithm |
| 22:43 | <zewt> | ##text |
| 22:44 | <SamB> | KevinMarks_: difficult to say; it's rather meta |
| 22:44 | <TabAtkins> | I think it's fine to claim #text= |
| 22:44 | <zewt> | TabAtkins: i think that's extremely bad |
| 22:45 | <TabAtkins> | Why? Pretty sure it'd be safe to claw that out of the ID space. |
| 22:45 | <zewt> | it's the space for scripts to stash stuff in the hash that I'm more concerned about |
| 22:45 | <KevinMarks_> | you're all fighting for the ID space. Mine doesn't collie with it at all |
| 22:46 | <KevinMarks_> | and scripts stuffing things in the hash aren't going to collide except in documents discussing those scripts |
| 22:46 | <KevinMarks_> | and only if they use spaces |
| 22:46 | <TabAtkins> | KevinMarks_: Orthogonal concerns. Even if we decided to use a different syntax like ##foo, we'd still want to make sure it's possible to use more functions than just "match text". |
| 22:47 | <KevinMarks_> | TabAtkins: how does this stop that? |
| 22:47 | <KevinMarks_> | it's possible to use more functions than just "match ID" now |
| 22:47 | <TabAtkins> | Everyone's been over that. Making "##foo" be the "search for 'foo' text" syntax claims the entire syntax space. |
| 22:47 | <Hixie> | what's the problem y'all are trying to solve? (sorry, not been paying attention so far) |
| 22:48 | <SamB> | as you can see, there are a lot of people who want various pieces of this action; it's best if we can come up with something that avoids people having to worry about stepping on eachothers toes in the process ... |
| 22:48 | <KevinMarks_> | ID already claims the entire syntax space |
| 22:48 | <SamB> | KevinMarks_: yes, well, if we're going to steal some we need to do it properly |
| 22:48 | <TabAtkins> | Hixie: Trying to solve the problem of multiple specs wanting to put things in the fragment space. |
| 22:48 | <KevinMarks_> | if you manage without colliding with IDs, you'll manage with this |
| 22:49 | <KevinMarks_> | Hixie: the fragmentions idea |
| 22:49 | <zewt> | "we already have a collision with IDs" != "we should stuff whatever unstructured stuff we want in the hash and not care about making things worse" |
| 22:49 | <Hixie> | TabAtkins: ah, a time-honoured problem for people to try to solve :-) |
| 22:49 | <TabAtkins> | KevinMarks_: There's a difference between "No real IDs use an = character" and "No one will ever want to search for an = character" |
| 22:49 | <Hixie> | KevinMarks_: fragmentations idea? |
| 22:49 | <SamB> | Hixie: no, fragmentions |
| 22:49 | <Hixie> | (in practice, the fragid space in HTML docs is page-defined, and entirely under the control of the page) |
| 22:49 | <TabAtkins> | Frag-mentions. |
| 22:49 | <SamB> | it's a portmanteu (however that's spelt) |
| 22:50 | <Hixie> | frag-mentions? |
| 22:50 | <zewt> | Hixie: http://foo.com##text=hello linking to the first text match of "hello" (using one of the syntaxes we've discussed) |
| 22:50 | <Hixie> | oh, linking to a text match |
| 22:50 | <Hixie> | interesting |
| 22:50 | <KevinMarks_> | http://sandbox.thewikies.com/fragmentions/example.html#remote+annotation |
| 22:50 | <zewt> | (obviously, the web compat and hash namespace issues are biggies) |
| 22:50 | <TabAtkins> | (Probably actually pre-filling the browser's Ctrl+F UI.) |
| 22:50 | <SamB> | http://indiewebcamp.com/fragmention links to several related things ... |
| 22:50 | <Hixie> | yeah you don't want to do that using fragids, pages can already use that space for whatever purpose they want |
| 22:50 | <KevinMarks_> | a single word is a problem |
| 22:50 | <KevinMarks_> | multiple words isn't |
| 22:51 | <TabAtkins> | Hixie: So the idea so far is to lean on ## as the introducer syntax. |
| 22:51 | <KevinMarks_> | hang on |
| 22:51 | <KevinMarks_> | I'm backing off ## |
| 22:51 | <zewt> | we're not :) |
| 22:51 | <KevinMarks_> | and being more ambitious |
| 22:51 | <KevinMarks_> | IDs cannot contain spaces |
| 22:51 | <KevinMarks_> | so http://sandbox.thewikies.com/fragmentions/example.html#remote+annotation |
| 22:51 | <KevinMarks_> | means what now? |
| 22:51 | <SamB> | KevinMarks_: it might be possible to use that space but it would be more annoying to would-be linkmakers |
| 22:51 | <Hixie> | KevinMarks_: fragment identifiers aren't limited to IDs |
| 22:51 | <TabAtkins> | Your idea means I can't search for a single word. |
| 22:51 | <Hixie> | and "+" in fragment identifiers means "+", not " " |
| 22:52 | <zewt> | TabAtkins: he wants you to put a dummy space at the end |
| 22:52 | <TabAtkins> | Oh, bleh. |
| 22:52 | <KevinMarks_> | not in every browser I've tried it |
| 22:52 | <zewt> | my reaction too |
| 22:52 | <TabAtkins> | That doesn't work either. |
| 22:52 | <SamB> | dummy space isn't even actually possible |
| 22:52 | <TabAtkins> | I might be searching for a word prefix. |
| 22:52 | <SamB> | browser removes it |
| 22:52 | <TabAtkins> | I do that in the Ctrl+F UI regularly. |
| 22:52 | <SamB> | I don't know if fragmentions can even search for word fragments |
| 22:52 | <astearns> | the part of the URL that contains the fragmention is the fragmention container, so it will have to be called the fragmentiontainer |
| 22:52 | <SamB> | astearns: lol |
| 22:52 | <SamB> | you win |
| 22:52 | <zewt> | anyway, ## solves (or attempts to solve) a number of problems, including possibly improving the situation we have today where you can't use both #anchors and script-data-stored-in-the-hash at the same time |
| 22:53 | <KevinMarks_> | Hixie, click that lint |
| 22:53 | <KevinMarks_> | *link |
| 22:53 | <SamB> | zewt: ## is at least a good stand-in for a solution |
| 22:53 | <KevinMarks_> | I don't actually care about the single word case |
| 22:53 | <zewt> | SamB: making http://foo.com#clientdata##id=foo behave like http://foo.com#foo does today seems to solve it pretty well |
| 22:53 | <Hixie> | KevinMarks_: what about it? |
| 22:54 | <KevinMarks_> | because my use case is robust anchors to text content |
| 22:54 | <astearns> | KevinMarks_: the single word case seems like a huge use case to me - I'm annotating this word to mention that it's mispelled |
| 22:54 | <KevinMarks_> | so multiword is better |
| 22:54 | <zewt> | SamB: it doesn't fix it automatically (the site may need to adjust parsing to handle it, or know how to preserve the ##extra stuff in the URL), but it gives them a *way* to do it, which today doesn't exist at all |
| 22:55 | <KevinMarks_> | astearns: in practice you give search phrase |
| 22:55 | <SamB> | can I point out that I think I'm extremely likely to want to link to something other than the first occurance? |
| 22:55 | <KevinMarks_> | which is why you use more words |
| 22:55 | <Hixie> | fragment identifiers are a reserved space for use by the page, you can't add UA logic there beyond what's there already |
| 22:55 | <zewt> | SamB: i'm inclined to punt that as a use case for a possible future "css selectors in the url" proposal |
| 22:55 | <SamB> | zewt: I was sort of assuming we'd want to roll out browsers segregating that stuff from .fragment as the first step |
| 22:56 | <JonathanNeal> | KevinMarks_: for the sake of argument, if ## is used, what are the next concerns? < Hixie, TabAtkins |
| 22:56 | <KevinMarks_> | http://www.kevinmarks.com/poemfragmentions.html##occurs+more |
| 22:56 | <Hixie> | otherwise you'd break e.g. fragmention.js |
| 22:56 | <KevinMarks_> | I'm not adding more UA logic |
| 22:56 | <Hixie> | oh |
| 22:56 | <KevinMarks_> | I'm just expanding the ability to express "the indicated part of the document" |
| 22:56 | <TabAtkins> | ...which is UA logic. |
| 22:57 | <Hixie> | o_O |
| 22:57 | <Hixie> | i'm confused |
| 22:57 | <zewt> | Hixie: the web compat problem is important, but it's not obvious to me that having (eg.) "##id=foo" jump to <div id=foo> isn't web-compatible enough |
| 22:57 | <Hixie> | do you want UAs to change behaviour or not? |
| 22:57 | <SamB> | Hixie: well, presumably we could key off of "#" "#" ID "=" ? |
| 22:57 | <TabAtkins> | UA logic being "anything the UA does for you", as opposed to "something that in-page scripts do". |
| 22:57 | <Hixie> | there are pages that take the fragid and do stuff with it |
| 22:57 | <Hixie> | stuff like "draw it on a canvas" |
| 22:57 | <zewt> | i've written many of them myself :) |
| 22:57 | <Hixie> | or "send an e-mail" |
| 22:57 | <Hixie> | or whatever |
| 22:57 | <SamB> | Hixie: I want the URL parsing to change, and hide this from old pages |
| 22:57 | <KevinMarks_> | I want UAs to change behaviour. I am arguing that this does not in any way affect the other uses of fragments by client code |
| 22:58 | <Hixie> | oh well if you want to change URL parsing, that's a different matter |
| 22:58 | <KevinMarks_> | and this would not affect them |
| 22:58 | <zewt> | SamB: i just thought about that a little, but changing that is scary... |
| 22:58 | Hixie | will leave fighting changing the url parsing spec to anne |
| 22:58 | <KevinMarks_> | I want to add a step between 7. and 8. here http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#the-indicated-part-of-the-document |
| 22:58 | <Hixie> | KevinMarks_: yeah, you can't do that |
| 22:58 | <Hixie> | KevinMarks_: that breaks pages that use the fragment identifier |
| 22:58 | <SamB> | zewt: well, it seems impractical to expect every JS app that uses fragments to change |
| 22:58 | <zewt> | SamB: for example, if saying document.location.protocol + document.location.hostname ..... + document.location.hash no longer reconstructs the URL |
| 22:58 | <KevinMarks_> | how? |
| 22:58 | <SamB> | which seems like the alternative? |
| 22:58 | <Hixie> | KevinMarks_: you could do it the way SamB suggests |
| 22:59 | <Hixie> | KevinMarks_: and change the url parser |
| 22:59 | <SamB> | zewt: hmm |
| 22:59 | <zewt> | SamB: (because part of the hash is no longer inside .hash) |
| 22:59 | <KevinMarks_> | hear me out, Hixie |
| 22:59 | <SamB> | I'm not sure if I'd want to change .hash |
| 22:59 | <Hixie> | KevinMarks_: suppose a page takes the fragid and draws it on a canvas |
| 22:59 | <KevinMarks_> | OK |
| 22:59 | <Hixie> | KevinMarks_: you've just made that page have wacked behaviour for certain fragIDs |
| 22:59 | <SamB> | Hixie: assuming it has words on it |
| 23:00 | <KevinMarks_> | no more than if there is an ID in the page that matches it |
| 23:00 | <Hixie> | SamB: right |
| 23:00 | <zewt> | Hixie: it seems okay if the new feature doesn't work on 100% of pages, as long as it doesn't break existing pages/links (or whatever small percent of breakage vendors are OK with) |
| 23:00 | <Hixie> | KevinMarks_: right, but they already know about that |
| 23:00 | <SamB> | KevinMarks_: but it would KNOW about the IDs |
| 23:00 | <Hixie> | KevinMarks_: so they already have to deal with it |
| 23:00 | <Hixie> | zewt: there's 100s of trillions of pages. unless the number is 0, the number is probably too high. |
| 23:01 | <SamB> | the best case here is if we can make this work even for pages that already use their fragments in script |
| 23:01 | <zewt> | trying to contrive actual web breakage: a site might use a weird not-base64 binary encoding in their hash, which could end up encoding some binary blob to a string including "##text=hello" |
| 23:01 | <zewt> | s/actual/potential/ |
| 23:01 | <SamB> | we at least need to avoid actually BREAKING such pages |
| 23:01 | <zewt> | that page would break if .hash changed, but it might not if .hash stays the same (which I'm pretty sure it should) and it just causes the browser to try to scroll to "hello" |
| 23:02 | <KevinMarks_> | so we're back to what I said originally - is there a good survey of existing IDs and fragment URLs in the wild? |
| 23:02 | <KevinMarks_> | like Hixie did for classes? |
| 23:02 | <SamB> | hmm, what do typical .hash-using pages in the wild actually DO with their .hash strings? |
| 23:02 | <Hixie> | KevinMarks_: such a survey wouldn't help, what you need is an inspection-based examination of pages that use location.hash |
| 23:02 | <KevinMarks_> | 'cos that's how you settle "you might break this carefully constructed edge case" argument |
| 23:02 | <zewt> | SamB: probably everything conceivable :P |
| 23:02 | <JonathanNeal> | I’d still like to know from Hixie or TabAtkins what happens if we just use the ## space, as those are presently invalid, and let browsers honor the invalid ##term as they already would when <div id="#term">. |
| 23:03 | <Hixie> | JonathanNeal: nothing is invalid in a fragid |
| 23:03 | <zewt> | invalid as an @id link doesn't mean you can't put it in the fragment at all |
| 23:03 | <SamB> | unfortunate truth :-( |
| 23:03 | <JonathanNeal> | Hixie, ah, cool, and what are your thoughts on reserving some of that space for targeting elements by text? |
| 23:03 | <SamB> | the "nothing is invalid" bit, I mean |
| 23:03 | <zewt> | i think he just gave his thoughts :P |
| 23:03 | <SamB> | JonathanNeal: no that's not cool :-( |
| 23:04 | <KevinMarks_> | A fragment must be zero or more URL units. http://url.spec.whatwg.org/#url-code-points does not include # |
| 23:04 | <JonathanNeal> | SamB: so I’m clean, you are saying that anything using a hash to search for text on a page, regardless of the syntax, is not cool? |
| 23:05 | <SamB> | Hixie: oh did you see the link to http://simonstl.com/articles/cssFragID.html yet? |
| 23:05 | <KevinMarks_> | so #%23foo is needed to produce a decoded fragid of "#foo" |
| 23:06 | <Hixie> | JonathanNeal: retroactively reserving space is usually a lost cause |
| 23:06 | <Hixie> | KevinMarks_: maybe in theory, but not in practice |
| 23:06 | <SamB> | Hixie: obviously based on our discussion we're not sure that's a good plan for the actual syntax, but the things it allows one to *represent* seem useful ... |
| 23:06 | <KevinMarks_> | which is what we found |
| 23:06 | <KevinMarks_> | though some UA's converted ## into #%23 notably colloquy |
| 23:06 | <SamB> | KevinMarks_: you may have found a bug in the URL spec |
| 23:07 | <Hixie> | SamB: yeah, xpointer is one of the big over-engineered ways to solve this problem. and it doesn't solve it. :-) |
| 23:07 | <Hixie> | (and it went nowhere) |
| 23:07 | <zewt> | as a terrible logical-extreme case, do you think "##0271a91a-86a0-4773-b042-eb535834e0d8=hello" would be web-incompatible? |
| 23:07 | <SamB> | Hixie: it would help if we had a way to actually *use* it |
| 23:07 | <SamB> | I mean in a link |
| 23:07 | <Hixie> | anyway i don't want to be the stop energy in the room here, i mean, if you guys can figure out a way to do it, go for it :-) |
| 23:07 | <KevinMarks_> | there are variations of complex queries going back to 1998 that didn't work |
| 23:08 | <Hixie> | zewt: it would break the script i mentioned earlier, yes |
| 23:08 | <KevinMarks_> | the simple one goes right through the gap |
| 23:08 | <Hixie> | zewt: (unless we change url parsing to hide it from .hash) |
| 23:08 | <SamB> | hmm, my next crazy idea is to invent a new Unicode character especially to start one of these babies |
| 23:08 | <SamB> | that probably doesn't actually work though |
| 23:08 | <Hixie> | zewt: (though then we break the scripts that concatenate, as you mentioned) |
| 23:09 | <SamB> | hmm, FWIW, I think it's acceptable if a script tries to reconstruct its URL and loses the extras |
| 23:09 | <zewt> | Hixie: sorry, which script? (what I'm looking for is how it could have web compatibility issues, given that no link on the web contains that text) |
| 23:09 | <KevinMarks_> | http://zesty.ca/crit/draft-yee-url-textsearch-00.txt |
| 23:09 | <SamB> | I don't think the IETF is in charge of URLs anymore, KevinMarks_ |
| 23:09 | <zewt> | (I'm willing to make the leap of faith that no URL on the web contains a UUID that I just generated) |
| 23:10 | <zewt> | i guess we might be talking about different parts of web-compatible, too |
| 23:10 | <SamB> | zewt: oh, the one with the canvas that draws its fragment identifier |
| 23:11 | <zewt> | SamB: but no links actual exist with that string in it |
| 23:11 | <KevinMarks_> | got a link for drawing fragids on canvas |
| 23:11 | <KevinMarks_> | ? |
| 23:11 | <KevinMarks_> | I can see if the chrome plugin breaks it |
| 23:12 | <zewt> | you might create a link in the future that wouldn't work, but there's a big difference between breaking links that someone creates after the feature is deployed (they try it and simply notice it didn't work) and breaking ones that already exist (that's what I think of for "web compat") |
| 23:12 | <KevinMarks_> | agreed |
| 23:12 | <KevinMarks_> | I don't think this breaks links |
| 23:12 | <KevinMarks_> | thats where we keep going in circles |
| 23:12 | <SamB> | Hixie: anyway, personally I either won't want to link to words on that page in the first place, or can live with the silly things it decides to draw on its canvas when I do ... |
| 23:12 | <Hixie> | zewt: http://damowmow.com/playground/demos/fragment-identifiers/002.html##0271a91a-86a0-4773-b042-eb535834e0d8=hello |
| 23:12 | <KevinMarks_> | samB quite |
| 23:13 | <zewt> | Hixie: but that's not breaking links that exist today (putting aside web IRC logs of this discussion), since nobody's creating links using that feature (since it doesn't exist yet) |
| 23:13 | <Hixie> | zewt: it means you can't use that feature on that page |
| 23:13 | <zewt> | right |
| 23:13 | <zewt> | that seems different than "web compatibility" as I understand it |
| 23:13 | <SamB> | Hixie: yeah, true, which is bad :-( |
| 23:14 | <zewt> | the feature doesn't work with the page, but the page itself isn't broken |
| 23:14 | <Hixie> | zewt: that seems pretty lame if we can't come up with a feature that works on all pages |
| 23:14 | <SamB> | but "can't use it on that page" > "can't use that page because of it", obviously |
| 23:14 | <zewt> | the web can be pretty lame (you know that better than me :), but "we can't do this feature perfectly" is usually not a good reason to not do it at all |
| 23:14 | <Hixie> | well it means that if you actually WANT to display "#0271a91a-86a0-4773-b042-eb535834e0d8=hello", you can't do it, because it would jump to the word "hello" |
| 23:14 | <SamB> | Hixie: yeah, that was why I said we should try to allow this along with a fragment ID, and preferably along with other ## .. = stuff |
| 23:15 | <KevinMarks_> | it would jump to it and display it |
| 23:15 | <zewt> | right |
| 23:15 | <SamB> | Hixie: yeah |
| 23:15 | <Hixie> | SamB: yeah, changing the url parsing to add a new component to urls seems like a prereq to making anything like this work, imho. but i don't know how plausible even that would actually be. |
| 23:15 | <zewt> | messing with location.hash is scary as hell, heh |
| 23:15 | <SamB> | Hixie: yeah, exactly my thinking ... |
| 23:16 | <KevinMarks_> | I'm all Eppur Si Muove on this working |
| 23:16 | <SamB> | I'm not really sure if it should be included or excluded from location.hash |
| 23:16 | <zewt> | SamB: that sounds like the implication from what hixie said, though |
| 23:16 | <Hixie> | if we change the url parsing, it should be excluded |
| 23:16 | <Hixie> | otherwise you haven't changed url parsing |
| 23:16 | <zewt> | it'd have to not be in location.hash if you want that canvas page to "just work" |
| 23:16 | <KevinMarks_> | empirically, being able to link by text content is really handy |
| 23:17 | <Hixie> | i updated the spec header again, btw. made it way tighter. |
| 23:17 | <Hixie> | and added a gradient |
| 23:17 | <Hixie> | can't wait to see the reaction of all the other whatwg spec editors when they wake up and find their specs have changed! |
| 23:17 | <SamB> | what API would be appropriate for accessing that portion of the URL for at least those things that the browser doesn't grok yet? |
| 23:17 | <Hixie> | KevinMarks_: i dunno, i think it's a bit of an esoteric feature in practice |
| 23:17 | <zewt> | (i don't know if any pages parse out document.location.href and ignore .hash, anything doing that is probably a lost cause) |
| 23:17 | <zewt> | SamB: document.location.hashhash |
| 23:18 | <SamB> | KevinMarks_: people have certainly been after such a thing for text/plain for ages |
| 23:18 | <KevinMarks_> | quite |
| 23:18 | <SamB> | zewt: well, but what would the "type" of that be? |
| 23:18 | <SamB> | [(String, String)] ? |
| 23:18 | <SamB> | Map String String ? |
| 23:18 | <zewt> | not sure, seems not hard to define but probably not worth brainstorming at this point |
| 23:18 | <KevinMarks_> | the html5 spec is liberally sprinkled with ids so you can link to almost any bit of it |
| 23:19 | <KevinMarks_> | and that is hugely useful |
| 23:19 | <SamB> | KevinMarks_: indeed |
| 23:19 | <SamB> | not necessarily any bit you'd want to, but ... |
| 23:19 | <KevinMarks_> | being able to do that for any web document is great |
| 23:19 | <zewt> | changing url parsing and document.location makes this seem like a much bigger, heavier, more dangerous feature, compared to its value |
| 23:19 | <KevinMarks_> | it doesn't change .location |
| 23:20 | <SamB> | while we're on that topic, shouldn't there be some kind of browser UI for finding a nearby anchor? |
| 23:20 | <KevinMarks_> | only target |
| 23:20 | <zewt> | sigh |
| 23:20 | <JonathanNeal> | Hixie: I would point to http://indiewebcamp.com/fragmention#Related_work and http://en.wikipedia.org/wiki/Fragment_identifier#Proposals are decent arguments against it being esoteric |
| 23:20 | <SamB> | and making a you a URL for it? |
| 23:20 | <zewt> | it does in a big chunk of the discussion for the last page |
| 23:20 | <SamB> | zewt: last page? |
| 23:20 | <JonathanNeal> | s/are/as |
| 23:21 | <zewt> | the entire "change URL parsing" discussion is about changing .location |
| 23:21 | <KevinMarks_> | yes, the ## stuff |
| 23:21 | <KevinMarks_> | that's why I say YAGNI on that |
| 23:21 | <Hixie> | JonathanNeal: Put it this way. I have never heard non-web-heads (i.e. "real users") ask for this feature. |
| 23:21 | <zewt> | please don't make up abbreviations on the spot and expect others to guess what they mean |
| 23:21 | <SamB> | oh, I get it, "<zewt> it does in a big chunk [...]" is a response to "<KevinMarks_> it doesn't change .location" |
| 23:22 | <zewt> | SamB: sometimes one wishes for threaded IRC :P |
| 23:22 | <Hixie> | bbiab |
| 23:22 | <SamB> | Hixie: why should only "real users" get features? |
| 23:22 | <KevinMarks_> | you weren't in the Annotations meeting i was |
| 23:22 | <SamB> | zewt: YAGNI isn't made up on the spot? |
| 23:23 | <SamB> | it's in vera; no idea why not foldoc |
| 23:23 | <Hixie> | SamB: http://wiki.whatwg.org/wiki/FAQ#Where.27s_the_harm_in_adding.E2.80.94 |
| 23:23 | <SamB> | Hixie: point |
| 23:25 | <KevinMarks_> | this workshop: http://www.w3.org/2014/04/annotation/ |
| 23:25 | <zewt> | my overall take is that changing URL parsing and document.location is a big, scary change that dwarfs the value of the change; the feature not working on a few pages that use hashes in unusual ways is lame but bearable (and expected--the "##" idea wasn't expected to work in every case); if people decide it's not bearable, better to drop it than to mess around with something so fundamental |
| 23:25 | <KevinMarks_> | was where I heard use case after use case of people wanting more robust anchors into the web |
| 23:25 | <SamB> | hmm |
| 23:26 | <zewt> | my main issue with regular anchors is I can never find them; if browsers had a "copy link to this page at the most recent anchor" (so I didn't have to go hunt down a TOC link or open the inspector) they'd be a heck of a lot more usable |
| 23:26 | <KevinMarks_> | yes |
| 23:26 | <zewt> | that would help a lot without any platform changes |
| 23:26 | <KevinMarks_> | but being able to point to the text is better |
| 23:26 | <SamB> | for a moment I was pondering actually trying to allow xlink, but then I was like "but what would be in the address bar?" so yeah not going to work ... |
| 23:27 | <KevinMarks_> | because that is what they are trying to do |
| 23:27 | <SamB> | zewt: yeah, I just mentioned that above |
| 23:27 | <KevinMarks_> | and in this case the address bar is very clear |
| 23:27 | <SamB> | "shouldn't browsers have UI to find a handy anchor and make you a link" |
| 23:27 | <SamB> | that's a paraphrase |
| 23:28 | <KevinMarks_> | they are referring to the text not the anchor |
| 23:29 | <KevinMarks_> | In effect, we can make you an anchor for what you select |
| 23:30 | <SamB> | anyway, the amount of work involved here would make it an absolute requirement that any such change allow a whole namespace of such things, not just this one "fragmentions" |
| 23:30 | <zewt> | we understand the difference |
| 23:30 | <SamB> | KevinMarks_: I was talking about better UI to make links that work today |
| 23:30 | <SamB> | and, well, probably also last decade |
| 23:31 | <SamB> | by which I mean ~2004, not 2009 |
| 23:31 | <KevinMarks_> | so we'll stick to shipping a page of js that makes the browsers capable of doing this now then |
| 23:31 | <SamB> | KevinMarks_: which of course makes you part of the problem |
| 23:32 | <SamB> | in the sense that your scripts toes are among those that would need to be avoided in order to make such a change |
| 23:32 | <KevinMarks_> | not if you make this change... :D |
| 23:32 | <SamB> | well it sure won't happen quickly |
| 23:34 | <JonathanNeal> | SamB: actually, I hate that problem too, so when I wrote the script, I built in a feature test. |
| 23:34 | <SamB> | Hixie: so, um, does it make much difference what syntax he tries to use for this fragmentions thing? i.e. would it be better to use something like ##text= with the usual query-encoding? |
| 23:34 | <SamB> | JonathanNeal: how does it test for the feature? |
| 23:34 | <KevinMarks_> | http://sandbox.thewikies.com/fragmentions/example.html#phrases+as+anchors |
| 23:35 | <JonathanNeal> | SamB: what you could fault me for is making a feature test for a feature that doesn’t exist. The best I could do is search window.location for a fragmention property. |
| 23:35 | <zewt> | you could probably write to .hash and see if the location changes, but that'd be pretty intrusive |
| 23:35 | <KevinMarks_> | http://sandbox.thewikies.com/fragmentions/example.html#readable+shortcuts |
| 23:35 | <SamB> | JonathanNeal: pretty confident about the name, huh? |
| 23:36 | <JonathanNeal> | in the same way that .hash is a partial, decoded version of .href, .fragmention is a partial, decoded version of .hash. |
| 23:36 | <KevinMarks_> | you could see if target already matches what you were going to change it to? |
| 23:36 | <JonathanNeal> | SamB: like I said, fault me for that. |
| 23:36 | <TabAtkins> | zewt: Yeah, don't mess with .hash at all. |
| 23:36 | <TabAtkins> | Just let .hash continue to reflect the entire hash, then have another k/v dict populated from the ## values, like the current .query. |
| 23:37 | <SamB> | JonathanNeal: actually, I guess it's best if you don't really go anywhere near before some kind of consensus to use it would happen? |
| 23:37 | <JonathanNeal> | TabAtkins: that is what I tried to do, effectively. (see above comment) |
| 23:37 | <zewt> | TabAtkins: hixie's concern is that the feature wouldn't work on pages that use the hash literally (as in the "print the hash to a canvas" page) |
| 23:37 | <SamB> | s/near/near ##/ |
| 23:37 | <TabAtkins> | zewt: What I just said *should* work on pages taht use the hash literally. |
| 23:37 | <zewt> | i don't think that's web compat, though (or at least, not "web backwards-compatibility", which is the direction I usually think of it in) |
| 23:37 | <TabAtkins> | That's why I suggested it. ^_^ |
| 23:37 | <zewt> | TabAtkins: not sure what you meant, then |
| 23:37 | <TabAtkins> | If you want to use the hash literally, you just look at .hash. |
| 23:37 | <KevinMarks_> | http://sandbox.thewikies.com/fragmentions/example.html#include+the+entire+text |
| 23:37 | <TabAtkins> | Which is *the entire hash*, as it is today. |
| 23:38 | <JonathanNeal> | SamB, that’s an interesting point, though, if one of us had not made a proof of concept, I’m curious where the discussion would have gone. |
| 23:38 | <SamB> | TabAtkins: obviously whether to include it in .hash would merit further study |
| 23:38 | <KevinMarks_> | those last few links are all calls for linking to text |
| 23:38 | <zewt> | TabAtkins: the example was http://damowmow.com/playground/demos/fragment-identifiers/002.html##0271a91a-86a0-4773-b042-eb535834e0d8=hello |
| 23:38 | <SamB> | hmm, this fragmentions thing does not work with script disabled ;-P |
| 23:38 | <zewt> | TabAtkins: or to get rid of the weird example I made: http://damowmow.com/playground/demos/fragment-identifiers/002.html##search=hello |
| 23:39 | <zewt> | TabAtkins: the feature would continue to be printed to the canvas, since the ##stuff still shows up in .hash |
| 23:39 | <KevinMarks_> | JonathanNeal: I agree - your implementation made it clear that this worked and was useful |
| 23:39 | <TabAtkins> | Yeah, that would give a .hash of "#search=hello". (Or "##search=hello", I forget whether .hash includes the initial #.) |
| 23:39 | <zewt> | TabAtkins: i think we can live with that, FWIW |
| 23:39 | <SamB> | so, would it be stupid to set up telemetry for ## ? |
| 23:39 | <TabAtkins> | Whatever it does today. |
| 23:39 | <TabAtkins> | But it woudl also give a .hashQuery of {search:["hello"]} or whatever. |
| 23:40 | <TabAtkins> | zewt: So yeah, what you said. |
| 23:40 | <SamB> | TabAtkins: hmm, so we don't want to allow repeated keys then? |
| 23:40 | <SamB> | or ordering between keys |
| 23:40 | <zewt> | TabAtkins: the ##text= idea was meant to 1: avoid collisions with links that already exist today, and 2: give programmers a way to use both this feature and their own stuff in hashes at the same time |
| 23:40 | <JonathanNeal> | TabAtkins: today the hash contains the #, so, location.hash = 'hello'; location.hash // '#hello' |
| 23:40 | <TabAtkins> | SamB: Note the value is an array, just like for query values. |
| 23:40 | <SamB> | oh |
| 23:40 | <SamB> | nevermind |
| 23:40 | <zewt> | not to make this new feature work on every page, which it definitely won't |
| 23:40 | <TabAtkins> | zewt: Not sure how waht you're saying is relevant to what I said. |
| 23:41 | <SamB> | oh, well, that would still not allow different handling of ##text=foo##css=:bar and ##css=:bar##text=foo |
| 23:41 | <SamB> | not that the former would ever make much sense ... |
| 23:42 | <TabAtkins> | SamB: The URL object does track those differently, I think. |
| 23:42 | <zewt> | SamB: i'd totally avoid repeated keys, the APIs you end up with for a multidict are uglier than for a simple dictionary for incredibly rare cases |
| 23:42 | <TabAtkins> | (Or if it doesn't, then probably we dont' need that for hash queries either.) |
| 23:42 | <SamB> | zewt: hmm |
| 23:42 | <zewt> | (and even rarer for this stuff, at least for the potential uses we've discussed so far) |
| 23:43 | <zewt> | basically this breaks the URL into three major parts: stuff for the server (path, query), client-side stuff for scripts (part of the hash), and client-side stuff for the browser (this stuff) |
| 23:43 | <SamB> | (oh, btw: where I said XPath above I must have been thinking of XLink) |
| 23:43 | <SamB> | zewt: browser or polyfill |
| 23:43 | <zewt> | actually backing up, i'd start with: just expose this as a string |
| 23:44 | <KevinMarks_> | JonathanNeal's script works fine with http://damowmow.com/playground/demos/fragment-identifiers/002.html |
| 23:44 | <SamB> | zewt: hmm |
| 23:44 | <KevinMarks_> | though you'd have to enter a lot of lines to see it do something |
| 23:44 | <SamB> | zewt: so like .hashhash ? |
| 23:44 | <zewt> | seems like a given that you want a string anyway (for reconstructing the URL in various ways); the real question is whether you *really* need a browser-parsed version of it (which I'd really leave off from this discussion, that's a detail) |
| 23:44 | <SamB> | would be a string |
| 23:45 | <SamB> | zewt: point, yes |
| 23:45 | <zewt> | (we're already pretty far ahead of things talking about exposing it in location at all) |
| 23:45 | <SamB> | you don't REALLY need a browser-parsed version |
| 23:45 | <JonathanNeal> | zewt: re: "URL into three major parts", it already is, remember that #anchor will do something in your browser if you have <div id="anchor">. |
| 23:45 | <JonathanNeal> | Sorry if you meant that and I just misunderstood you. |
| 23:46 | <zewt> | JonathanNeal: sort of, but that's not a distinct part of the URL vs. script stuff |
| 23:46 | <KevinMarks_> | o_O |
| 23:46 | <JonathanNeal> | It is as distinct as hash search, no? At least, my library was written to do exactly what browsers do for hash anchors. |
| 23:46 | <KevinMarks_> | exactly |
| 23:47 | <KevinMarks_> | ID already owns this namespace |
| 23:47 | <zewt> | today there's no way to differentiate between "the client's own special magic stuff in the hash" and "platform features in the hash" |
| 23:47 | <KevinMarks_> | except the bit with spaces in |
| 23:49 | <zewt> | nope, because pages can already put spaces in the hash for their own use |
| 23:50 | <zewt> | of course, they can also put "##text=foo" in the hash, but one is less likely than the other |
| 23:50 | <SamB> | http://url.spec.whatwg.org/#api seems kind of strangely-indented |
| 23:51 | <KevinMarks_> | I love that my use case is a categorical collision and yours is a statistical argument |
| 23:51 | <SamB> | KevinMarks_: huh? |
| 23:52 | <KevinMarks_> | if fragmentions had to have 10 words in, would you be happy then? |
| 23:52 | <KevinMarks_> | 4? |
| 23:52 | <zewt> | to restate: "http://foo.com#post10##text=foo" gives script authors a way to encode their own data into the url for AJAX/history API use ("post10"), and also use text search (or ID links, or other things) in the same URL; no other proposal so far does that |
| 23:53 | <KevinMarks_> | that's not a use case |
| 23:53 | <zewt> | ... |
| 23:53 | <SamB> | zewt: and with ##css=, we could finally link to individual form controls in mediawiki preferences |
| 23:54 | <SamB> | (or ##anchor or whatever) |
| 23:54 | <KevinMarks_> | I say "lots of people want to link to the text of pages" you say "some mythical developer wants to combine the history api wiht text search |
| 23:54 | <zewt> | wow, I've never been called mythical before |
| 23:55 | <SamB> | KevinMarks_: trust me, there are pages people will want to do this on that are not made up |
| 23:55 | <zewt> | because I'd sure like to be able to write history API pages without breaking ID links, but it's not possible |
| 23:55 | SamB | goes looking for some apple docs ... |
| 23:55 | <KevinMarks_> | aaron added fragmentions to media wiki in about 20 minutes |
| 23:55 | <KevinMarks_> | it's handy |
| 23:55 | <SamB> | KevinMarks_: that won't do what I just said though |
| 23:56 | <SamB> | especially considering that that part of the UI is multilingual |
| 23:56 | <KevinMarks_> | yes it does: http://indiewebcamp.com/Special:Preferences##New+signature |
| 23:57 | <KevinMarks_> | you have to sign in, mind |
| 23:57 | <SamB> | what if I have my UI set to klingon or something |
| 23:58 | <SamB> | (obviously not actually klingon, and not actually me, but it does turn out that klingon has an ISO code and everything) |
| 23:58 | <KevinMarks_> | whats the iso code for klingon? |
| 23:59 | <SamB> | I think it's tlh |
| 23:59 | <SamB> | anyway, consider e.g. https://developer.apple.com/library/ios/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/Introduction/Introduction.html#//apple_ref/doc/uid/TP30001066 |
| 23:59 | <KevinMarks_> | what's kn? |
| 23:59 | <KevinMarks_> | that looks like klingon |