| 01:25 | <dlongley> | TabAtkins: throwing and calling reject aren't exactly the same -- particularly not in that scenario |
| 01:25 | <dlongley> | the error happens at a different time |
| 01:28 | <dlongley> | the difference is in whether or not the future is actually invoked (via then/done) |
| 01:29 | <dlongley> | try { var future = foo(); } catch(ex) {} |
| 01:29 | <dlongley> | vs. |
| 01:29 | <dlongley> | try {var future = foo(); future.then(a, b);} catch(ex) {} |
| 01:29 | <dlongley> | the idl test harness is looking for the future to happen when foo() is called, not when .then() is called. |
| 01:29 | <dlongley> | (via the rejection callback passed to .then) |
| 01:30 | <dlongley> | s/for the future/for the error |
| 04:01 | <tantek> | TabAtkins, added stub spec for registry entry for rel=discussion: http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions |
| 04:41 | <rcombs> | where do I go to find out whether or not JS's handling of Unicode is going to get better? |
| 04:42 | <rcombs> | also, regexes |
| 04:43 | <rcombs> | also, proper Unicode handling _in_ regexes |
| 07:31 | <zcorpan> | should specs reference CSS specs on dvcs.w3.org or dev.w3.org? |
| 09:06 | <Ms2ger> | zcorpan, dev. |
| 09:07 | <zcorpan> | Ms2ger: ok. do you know why? |
| 09:08 | <Ms2ger> | I don't remember |
| 09:08 | <jgraham> | Everyone loves CVS? |
| 09:09 | <Ms2ger> | dev. just mirrors dvcs. for CSS, fwiw |
| 09:21 | <annevk> | TabAtkins: you could just make it conditional on the URL having a path in the first place |
| 09:21 | <annevk> | TabAtkins: data URLs for instance will only have "scheme data" |
| 09:22 | <annevk> | TabAtkins: so either the first n segments match, or they don't, or there are no segments to begin with |
| 09:24 | <annevk> | TabAtkins: Hixie: also, on a more general point, URL hasn't received much review yet so I first want to know if all the concepts are correct before adding makeup and such |
| 10:31 | <annevk> | zcorpan: it seems you're no longer updating the xref database with CSSOM references? |
| 10:31 | <annevk> | zcorpan: for some reason the links to getClientRects() and such from DOM went dead :( |
| 10:32 | <zcorpan> | annevk: glenn forked it. i tried to switch back to xref but something didn't work right and then i gave up |
| 10:40 | <SimonSapin> | annevk: Is http://example.com/foo//bar the same URL as http://example.com/foo/bar ? |
| 10:40 | <annevk> | SimonSapin: no |
| 10:41 | <SimonSapin> | so servers that consider them the same decide that on their own |
| 10:41 | <SimonSapin> | if that makes sense |
| 10:42 | <gsnedders> | Right. A server could equally decide foobar and /fo/b/a/r are the same. :) |
| 10:42 | <jgraham> | Or foo/bar and foo/bar/ :) |
| 10:43 | <SimonSapin> | so, on my TODO list: detailed review of selectors4’s :local-link and :local-link(2) |
| 10:43 | <SimonSapin> | I think it’s doing weird normalization |
| 10:43 | <annevk> | SimonSapin: yeah, just like servers treating / and /index.html identically sometimes |
| 10:44 | <SimonSapin> | indeed, that too |
| 10:44 | <annevk> | SimonSapin: more happenstance than actual architecture |
| 10:44 | <annevk> | (well, it's related to the architecture of the server, but not that of URLs) |
| 10:45 | <gsnedders> | Or and /randomweirdindexpage |
| 10:45 | <SimonSapin> | /Overview.html ;) |
| 10:47 | <annevk> | I recommend making :local-link map directly to the working of URLs |
| 10:47 | <SimonSapin> | So if you’re on /foo#bar, clicking on href="/foo#baz" only scrolls, but href="/foo/#baz" triggers a navigation/page load, right? |
| 10:47 | <annevk> | and not any kind of server architecture |
| 10:47 | <gsnedders> | SimonSapin: Yes. |
| 10:47 | <SimonSapin> | annevk: agreed |
| 10:47 | <annevk> | basically you want to use a parsed URL's path array I reckon |
| 10:47 | <SimonSapin> | right now :local-link(1) matches both, but I think it should only match the former |
| 10:48 | <annevk> | what does 1 mean? |
| 10:48 | <SimonSapin> | means 1 leading path segments |
| 10:48 | <annevk> | so 0 would match data URLs and such? |
| 10:49 | <SimonSapin> | annevk: that’s what it does, but with additional steps like remove a trailing empty path segment, ie. a trailing slash |
| 10:49 | <annevk> | ooh |
| 10:49 | <annevk> | sounds more like :apache-local-link |
| 10:50 | <SimonSapin> | yeah, I’ll send a review on www-style |
| 10:50 | <SimonSapin> | I think a functional :local-link() never matches data: and such URLs |
| 10:50 | <SimonSapin> | (that’s why Tab was asking about relative schemes) |
| 10:52 | <annevk> | well every URL will have at least one path segment |
| 10:52 | <annevk> | except if it's a data URL and such |
| 10:52 | <annevk> | so your idea would be that :local-link(0) matches nothing? |
| 10:53 | <SimonSapin> | that’s what I’m reading in the draft |
| 10:53 | <SimonSapin> | not sure what it *should* do |
| 10:54 | <SimonSapin> | :local-link(0) basically means "same domain name". (Not sure if eg. the scheme should be considered or is in the draft) |
| 10:56 | <annevk> | it says to ignore scheme / username / password / port / query string / fragment |
| 10:56 | <SimonSapin> | not sure it should |
| 10:56 | <annevk> | that seems kinda flawed |
| 10:57 | <annevk> | I think we should define some kind of URL comparison API and CSS should hook into that |
| 10:57 | <annevk> | this kind of adhoc approach works, but is not great |
| 10:57 | <SimonSapin> | should it be considered "local" to go from HTTP to HTTPS on the same domain? |
| 10:58 | <SimonSapin> | yes, if Selectors can just refer to URL for this that would be great |
| 10:58 | <annevk> | well you'd still need to define some kind of CSS syntax |
| 10:58 | <SimonSapin> | sure |
| 10:58 | <SimonSapin> | for the comparison I mean |
| 10:59 | <SimonSapin> | I think Selectors 4 is doing ad-hoc comparison because there was not enough in URL to refer to |
| 10:59 | <annevk> | given that everything on the web is origin-scoped I don't think ignoring scheme/port is a good idea |
| 10:59 | <annevk> | treating origin as a single entity is a much better approach |
| 10:59 | <annevk> | yeah maybe |
| 11:00 | <annevk> | nobody emailed me their requirements for URL comparison though despite repeated requests :/ |
| 11:00 | <annevk> | okay, lets look around the web and see what people are doing |
| 11:02 | <SimonSapin> | So far WeasyPrint only needs to tell apart local/internal links from external ones |
| 11:03 | <SimonSapin> | with corner cases like href="#foo" without a base URL (eg. parsing an HTML string from memory) |
| 11:32 | <annevk> | SimonSapin: I emailed www-style/public-webapps with some thoughts |
| 12:22 | <zcorpan> | annevk: DOMStringList is to be replaced with DOMString[] still, right? What about StyleSheetList, CSSRuleList, MediaList? https://www.w3.org/Bugs/Public/show_bug.cgi?id=16111 |
| 12:41 | <annevk> | haven't really thought about that lately |
| 12:41 | <annevk> | we need some kind of generic list solution but we don't |
| 12:49 | <Ms2ger> | Maybe we should make annevk implement webidl arrays in Gecko... |
| 12:52 | <annevk> | Ms2ger: so I'm not sure IDL arrays are the right solution here |
| 12:55 | <annevk> | I'm not a big fan of IDL arrays. I think JavaScript basically needs some new Array types... |
| 13:11 | <annevk> | I'm hoping JSIDL will magically fix it |
| 13:12 | <Ms2ger> | Ehehehehe |
| 13:12 | <annevk> | I know I know |
| 13:13 | <Ms2ger> | I'll believe it when I see it |
| 13:30 | <annevk> | http://lists.w3.org/Archives/Public/www-style/2013Apr/0592.html my @opera.com email is still going strong it seems |
| 13:37 | <odinho> | ^_^ Good times |
| 13:38 | <annevk> | I reckon /dev/null always has good times |
| 13:39 | <SimonSapin> | annevk: still going strong as in you’re still getting mail addressed to it, or as in people are still using it? |
| 13:40 | <odinho> | SimonSapin: The /dev/null comment should indicate to you where those mails go ;-) |
| 13:40 | <odinho> | So I vote for #2 |
| 13:40 | <SimonSapin> | ok |
| 13:42 | <annevk> | http://five-gt-two.spreadshirt.com/ is still alive |
| 14:06 | <annevk> | I learned today that the W3C at one point considered RAND licensing: http://www.w3.org/TR/2001/WD-patent-policy-20010816/ (authors include Microsoft, HP, Philips, and Apple) |
| 14:07 | <annevk> | Glad that went nowehre |
| 14:07 | <annevk> | nowhere* |
| 14:08 | <tantek> | annevk - it used to be a per WG choice (RAND vs RF) |
| 14:09 | <tantek> | as in, defined in the WG charter |
| 14:09 | <annevk> | oh wow |
| 14:09 | <tantek> | was quite a fight to get RF across the org |
| 14:09 | <SimonSapin> | what are RAND and RF? |
| 14:10 | <Ms2ger> | "reasonable and non-discriminatory terms" for RAND |
| 14:10 | <Ms2ger> | royalty-free for rf |
| 14:10 | <Ms2ger> | Both licensing terms for patents |
| 14:13 | <jgraham> | That needs more scare quotes |
| 14:13 | <jgraham> | "reasonable" |
| 14:15 | <Ms2ger> | "'reasonable' 'and' 'non-discriminatory' 'terms'" |
| 14:15 | <Ms2ger> | More? :) |
| 14:16 | <marcosc> | :) |
| 16:06 | <cwilso__> | (man, the above convo on RAND/RF licensing suddenly made me feel very, very old) |
| 16:06 | <cwilso__> | annevk: yt? |
| 16:06 | <annevk> | cwilso__: yeah |
| 16:08 | <cwilso__> | I'm not trying to be obtuse on fingerprinting re: MIDI API; I don't understand how it enables reviving cookies any more than other available info |
| 16:09 | <cwilso__> | (Note that I was originally against having an ID, because you can't guarantee across sessions, necessarily) |
| 16:10 | <annevk> | so Gamepad only exposes the vendor string |
| 16:10 | <dglazkov> | good morning, Whatwg! |
| 16:10 | <annevk> | MediaStream seems to be doing something else |
| 16:10 | <annevk> | you guys are doing something else |
| 16:10 | <cwilso__> | um, Gamepad has a DOMString id. |
| 16:10 | <annevk> | and nobody seems to think it's a problem |
| 16:10 | <annevk> | cwilso__: did you read the description? |
| 16:10 | <annevk> | (which is way too vague, imo) |
| 16:10 | <cwilso__> | Sure - typically USB vendor and product id. |
| 16:11 | <cwilso__> | The point of the ID in MIDI is simply so you can find the same one next time. |
| 16:11 | <cwilso__> | E.g. in my prollyfill it just appends index, manufacturer and name (should really hash, left it for debugging) |
| 16:13 | <annevk> | oh you think it's not an actual string for Gamepad? hmm |
| 16:13 | <cwilso__> | I initially was against ID because I said you could look up from index, name and manufacturer. If there's significant risk added, I'd probably just drop ID again, because an ID that gets regenerated "randomly" is going to be confusing ("I cleared my cookies, so of course my sequencer forgot its config" is not going to occur to an end user) |
| 16:14 | <annevk> | what's index? |
| 16:14 | <cwilso__> | I don't know what Gamepad has in practice in implementations; the spec implies it's an identifier for THAT gamepad, and would persist - but you're completely right that it does not state uniqueness (e.g. if you have two of the same gamepad, are the IDs identical?) |
| 16:15 | <cwilso__> | index = position in the inputs or outputs list. like position in the getGamepads() []. |
| 16:15 | <annevk> | could that not change over time? |
| 16:17 | <annevk> | Anyway, if we're going to hook all these devices up that's great, but we should have a somewhat consistent story for them. |
| 16:17 | <cwilso__> | Yes, of course. If you unplugged a device, e.g.. There's no cross-OS unique identifier that's the same. CoreMIDI has persistent IDs, IIRC, and it turns out that the Windows MIDI HMIDI handles are persistent, but they're not the same, and I don't think there's a consistent ID coming straight from USB-MIDI. |
| 16:18 | <annevk> | cwilso__: so you wouldn't want to generate the ID based on index then |
| 16:18 | <cwilso__> | I'd +1 that. Gamepad pretty much just relies on index, really. |
| 16:18 | <cwilso__> | My initial take on Web MIDI was that it should, too, and could additionally look up based on product name. |
| 16:21 | <annevk> | Per your configuration example. It sounds like this is something that ought to be defined in detail. So you don't lock users to a single browser. |
| 16:22 | <annevk> | E.g. given some hardware, irrespective of the browser you'll get the same ID for it. |
| 16:22 | <cwilso__> | MediaStreams apparently generate a GUID; not clear how persistent it would be. |
| 16:23 | <cwilso__> | Well, yes - although if you move the hardware to a different machine you might not. |
| 16:23 | <annevk> | Yeah, web security seems like lalaland for most people... Push notification proposal does not even mention the word "origin". |
| 16:23 | <cwilso__> | I think OSX and Windows both keep track of devices they've seen before. |
| 16:23 | <cwilso__> | E.g. if you plug in A, B and C in that order... |
| 16:23 | <cwilso__> | then remove B |
| 16:24 | <Ms2ger> | Glenn Adams only came for the beer? |
| 16:24 | <cwilso__> | Obviously you'll get [A,C]. If you plug B back in, you'll get [A,B,C]. |
| 16:24 | <cwilso__> | If you'd never plugged B in at all, you'd get [A,C,B] |
| 16:25 | <annevk> | But is there some way to know that B is not A? Assuming neither has been plugged in and I plug in one at random? |
| 16:25 | <cwilso__> | I think this system would err on the side of messing up the config sometimes, actually. :) Or needing to re-lookup. |
| 16:26 | <cwilso__> | If they're all the same type of device (I mean, they're identical devices - the same make/model of keyboard, say), no, I don't think so, not across all systems anyway. |
| 16:27 | <cwilso__> | It's not really even a globally unique ID, just a "globally at this time" ID. |
| 16:28 | <cwilso__> | that's not a universal statement, you realize - you can figure out how to do that, by using the handles in Windows and the identifiers under the covers in OSX. |
| 16:28 | <Ms2ger> | Ooh, XHR/PE discussion |
| 16:29 | <cwilso__> | I presume it's based on the USB serial number (but that's not exposed, of course, as MIDI devices can be non-usb) |
| 16:29 | <annevk> | Ms2ger: hmm? |
| 16:29 | cwilso__ | back in 5, need coffee |
| 16:29 | <Ms2ger> | WebApps F2F |
| 16:30 | <annevk> | cwilso__: anyway, it'd be good if this was coordinated across everyone introducing access to devices |
| 16:30 | <annevk> | cwilso__: I guess I don't really have strong opinions on the specifics, other than that privacy/fingerprinting and whether any of it needs origin-scoping or not is looked into and is called out in some way in the specification |
| 16:30 | <annevk> | cwilso__: well, and if use cases like persisting a configuration survive, it would be great if we could make that cross-browser |
| 16:32 | Ms2ger | wonders where sicking got lost |
| 16:32 | <annevk> | Ms2ger: Present+ Ms2ger, really? :-) |
| 16:34 | <annevk> | Wait http://www.w3.org/2013/04/25-webapps-minutes.html nobody from Apple or Google? |
| 16:35 | <Ms2ger> | Some guy said he was from Google |
| 16:35 | hober | is here |
| 16:35 | annevk | is here |
| 16:36 | Ms2ger | is here |
| 16:36 | divya | is here |
| 16:36 | cwilso__ | is back |
| 16:36 | <hober> | (i meant, i'm at the webapps f2f, though I'm not listed. grr) |
| 16:36 | <annevk> | Is this our "I'm Spartacus!"? |
| 16:36 | <annevk> | aw, cwilso__ did a combo-breaker |
| 16:37 | <annevk> | hober: but you're at every standards meeting :p |
| 16:37 | <Ms2ger> | hober, good way to avoid actual work? :) |
| 16:38 | <cwilso__> | C-C-C-C-C-C-COMBO BREAKER!! |
| 16:39 | <cwilso__> | annevk: yeah. The privacy/fingerprinting stuff is gone into in some detail in Web MIDI, but could certainly be expanded. Keeping sync of config across engines is a goal, although hard; will help when another engine gets interested enough to discuss implementation concerns. :) |
| 16:40 | <Ms2ger> | Sounds like the Google-Mozilla bus arrived |
| 16:41 | <cwilso__> | Except that I'm 697miles from the main campus (until June), yeah. :) |
| 16:41 | <Ms2ger> | sicking, tut tut, you should be on time |
| 16:42 | <hober> | annevk: not at all of them, fortunately, but yeah, most of them |
| 16:43 | <cwilso__> | ms2ger: oh, duh, you mean at the ftf |
| 16:43 | <Ms2ger> | Yeah |
| 16:53 | <TabAtkins> | SimonSapin: In :local-link, we only normalize by dropping the hash. In :local-link(n), we normalize by dropping the scheme, hash, query, and userdata, and if the final path segment is empty, drop it too. |
| 16:53 | <TabAtkins> | (So "example.com" and "example.com/" are the same.) |
| 16:53 | <TabAtkins> | That last one is technically not valid, but in practive it's fine, and I think if we didn't do it, it would make the feature much less useful. |
| 16:54 | <TabAtkins> | annevk: Yes, we want to make :local-link work on URLs. It can't rely on server structure anyway. ^_^ |
| 16:55 | <annevk> | example.org already has / via the parser |
| 16:55 | <TabAtkins> | annevk: :local-link(n) never matches "opaque" urls, like data:. :local-link(0) matches when the domains match, :local-link(1) matches when the domains and first path segment match, etc. |
| 16:55 | <annevk> | the problem is treating example.org/foo and example.org/foo/ the same |
| 16:55 | <TabAtkins> | annevk: If you defined a URL comparison API, we'd gladly hook it. |
| 16:56 | <annevk> | see my email |
| 16:56 | <annevk> | I was wondering why you were doing certain things, seems one part of it was a misunderstanding |
| 16:57 | <annevk> | dropping scheme/port also seems wrong |
| 16:58 | <TabAtkins> | annevk: Just tell us what's right (on the list), and we'll change. The current text is a result of fantasai or I deciding what seemed "reasonable". |
| 16:59 | <annevk> | TabAtkins: k, I'd be interested in knowing whether you'd want query comparison stuff and such as well |
| 16:59 | <annevk> | TabAtkins: did you guys collect much feedback from developers? |
| 17:00 | <TabAtkins> | For the unparametrized, probably want query comparison so we can tell what the "same page" is. For the parametrized, definitely want queries stripped. |
| 17:00 | <TabAtkins> | Dunno what feedback we may have explicitly collected, but there's been requests for some time for more url-matching pseudoclasses. |
| 17:00 | <TabAtkins> | People wanting "local" links to be selectable, for some definition of "local". |
| 17:01 | <TabAtkins> | The parametrized one lets you define "local" relative to your personal url scheme - in github's case, :local-link(1) means "same user", :local-link(2) means "same repo", etc. |
| 17:01 | <SimonSapin> | TabAtkins: http://example.com and http://example.com/ are parsed the same, while /foo and /foo/ should be different |
| 17:01 | <TabAtkins> | SimonSapin: For most sites that's not true, though. :/ |
| 17:02 | <SimonSapin> | well, that’s an apache thing |
| 17:02 | <SimonSapin> | clicking on the link will still navigate rather than just scroll |
| 17:02 | <annevk> | TabAtkins: but at that point you're embedding server semantics into the comparison |
| 17:02 | <TabAtkins> | Ah, hm. |
| 17:02 | <TabAtkins> | annevk: Well, not quite server semantics. Common de facto url semantics, perhaps. |
| 17:02 | <SimonSapin> | … which should be the criteria for :local-link (non fonctional), I think |
| 17:02 | <annevk> | TabAtkins: e.g. / and /Overview.html might be the same too |
| 17:02 | <TabAtkins> | SimonSapin: Yeah, makes sense for :local-link |
| 17:03 | <TabAtkins> | annevk: Yeah, but that's impossible to tell. |
| 17:03 | <SimonSapin> | trailing slash also changes meaning of path-relative URLs |
| 17:03 | <TabAtkins> | Oh man, you're right abuot that. |
| 17:03 | <TabAtkins> | Never mind, then. |
| 17:03 | <SimonSapin> | gotta go, bye |
| 17:04 | <annevk> | TabAtkins: I think that should be an incentive for people to clean that up though |
| 17:04 | <annevk> | TabAtkins: e.g. by having the server do a redirect |
| 17:05 | <TabAtkins> | annevk: I'm not too interested in providing that sort of incentive, but I am interested in making things consistent across the platforms. |
| 17:05 | <TabAtkins> | platform/usage |
| 17:05 | <TabAtkins> | So yeah, example.com/foo and example.com/foo/ should be different. |
| 17:05 | <annevk> | well we cannot normalize e.g. /foo//bar to /foo/bar |
| 17:05 | <annevk> | even though Apache will treat them as identical iirc and not redirect |
| 17:06 | <TabAtkins> | Is the /foo/../bar == /bar thing also apache-specific? |
| 17:06 | <annevk> | W3C does appear to redirect for http://www.w3.org/2001//tag/ that's cool |
| 17:06 | <annevk> | TabAtkins: no, that's the URL parser |
| 17:06 | <TabAtkins> | annevk: Cool. |
| 17:06 | <karlcow> | note that you can deactivate Apache default behavior |
| 17:06 | <karlcow> | → curl -sI http://www.la-grange.net/2013 |
| 17:06 | <karlcow> | HTTP/1.1 403 Forbidden |
| 17:07 | <TabAtkins> | So yeah, my preferred solution is to just lean *fully* on your spec for all the necessary parsing and terminology. |
| 17:07 | <karlcow> | → curl -sI http://www.la-grange.net/2013/ |
| 17:07 | <karlcow> | HTTP/1.1 200 OK |
| 17:07 | <annevk> | TabAtkins: cool, if you have feedback on the API thing I sketched out that'd be welcome |
| 17:08 | <annevk> | TabAtkins: I'll about providing hooks soonish |
| 17:08 | <TabAtkins> | annevk: Where did you outline this? |
| 17:08 | <annevk> | http://lists.w3.org/Archives/Public/www-style/2013Apr/0588.html (also on webapps) |
| 17:08 | <TabAtkins> | Oh, sorry, I was only skimming for www-style-tagged threads. |
| 17:08 | <karlcow> | http://httpd.apache.org/docs/2.2/mod/mod_dir.html#DirectorySlash |
| 17:10 | <annevk> | karlcow: what about //foo ? |
| 17:11 | <karlcow> | annevk: good question, I haven't tried |
| 17:11 | <annevk> | http://www.la-grange.net//2013/ aaah |
| 17:11 | <annevk> | even karlcow is not canonical |
| 17:12 | <annevk> | just found numerous bugs in my own URLs too, which were already broken |
| 17:12 | <TabAtkins> | For shame! |
| 17:12 | <karlcow> | you meant la-grange ;) |
| 17:12 | <annevk> | (for different reasons) |
| 17:12 | <annevk> | karlcow: maybe ;) |
| 17:12 | <hober> | TIL sicking eats every day |
| 17:12 | <karlcow> | karlcow is extremely faaaaaar to be canonical :p |
| 17:13 | <karlcow> | This slash-slash on Apache is interesting |
| 17:14 | <karlcow> | → curl -sI http://www.la-grange.net///2013/ |
| 17:14 | <karlcow> | HTTP/1.1 200 OK |
| 17:14 | <karlcow> | you can add as many as you want |
| 17:15 | gavinc | accepts challenge |
| 17:15 | <gavinc> | 414 Request-URI Too Large woohoo! |
| 17:16 | <annevk> | I wonder if the URL is too long or it simply has too many segments... |
| 17:17 | <karlcow> | "Regarding double slashes: Most Web servers silently collapse multiple slashes into a single slash early in the request processing pipeline. This is true for at least Apache, Tomcat and Jetty. " — http://stackoverflow.com/questions/4514627/apache-rewrite-rule-leading-slash/4514696#4514696 |
| 17:17 | <karlcow> | gavinc: how many? :) |
| 17:17 | <annevk> | http://www.la-grange.net/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:17 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:17 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:17 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:17 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:17 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:17 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:17 | <annevk> | //////////////////////////////////////////////////////////////////////////////////////////////////////http://www.la-grange.net///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:17 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:18 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:18 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:18 | <gavinc> | gee thanks annevk :P |
| 17:18 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:18 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:18 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:18 | <annevk> | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17:18 | <karlcow> | mwahahaha |
| 17:18 | <annevk> | ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2013/2013/ does the trick |
| 17:18 | <annevk> | oops |
| 17:18 | <TabAtkins> | Thanks for flooding, bro. |
| 17:18 | <karlcow> | :D |
| 17:18 | <TabAtkins> | I went to get a coke, and when I came back I thought something terrible was happening to my computer. |
| 17:18 | <annevk> | seems like I even made a typo |
| 17:18 | <karlcow> | :D |
| 17:18 | <annevk> | oh well |
| 17:18 | <karlcow> | When I slash, I do it with typos! |
| 17:19 | <annevk> | TabAtkins: I hope you didn't spit the coke all over it |
| 17:19 | <TabAtkins> | Luckily no. |
| 17:20 | <karlcow> | TabAtkins: it's a message. Coke is no good ;) |
| 17:20 | <TabAtkins> | karlcow: Diet Coke, even! |
| 17:21 | <karlcow> | collapsing the slash in Diet Coke. |
| 17:21 | <rillian> | TabAtkins: we should alter our clients to collapse multiple tabs early in the message display pipeline |
| 17:21 | <rillian> | s/tabs/slashes/ |
| 17:22 | <TabAtkins> | About to say, there's rarely more than one of me. |
| 17:22 | <TabAtkins> | And even if there was, you wouldn't want to collapse us. |
| 17:22 | <rillian> | typoes ruin the joke |
| 17:22 | <rillian> | TabAtkins: you'd scale well on parallel jobs? |
| 17:22 | <TabAtkins> | Pretty sure I would. |
| 17:23 | <TabAtkins> | With some message-passing latency, I think I'd do fine as a hive. |
| 17:23 | <TabAtkins> | (It's one of my pre-planned genie wishes.) |
| 17:23 | <tantek> | WTF |
| 17:23 | <TabAtkins> | Hahaha |
| 17:23 | tantek | scrolls up and sees a slash-attack |
| 17:24 | <rillian> | "He's just hive-curious." |
| 17:24 | <TabAtkins> | Hm, trying to think of a case where I'd want to ignore query but pay attention to fragment. |
| 17:24 | <TabAtkins> | rillian: It's a degenerate case of poly-amory. |
| 17:24 | <tantek> | TabAtkins - let me know if you find any other rel values you have problems with and I'll take care of specing/registering them. |
| 17:24 | <tantek> | We've been pretty active with that recently |
| 17:24 | <TabAtkins> | tantek: That's the only one I see in our specs so far. |
| 17:25 | <tantek> | based on all the #indiewebcamp distributed comments scenarios / progress |
| 17:25 | <tantek> | ok cool |
| 17:25 | <gavinc> | http://paste.ofcode.org/XZBCb4MUzrL2Hwtjh9pHkw ;) |
| 17:25 | tantek | waves from the WebApps WG f2f |
| 17:25 | <TabAtkins> | annevk: There are times when the query is just used for passing random information into the page, such that different queries still represent the same "page". Then, I think you'd want to just omit query, but match on everything else. |
| 17:26 | Ms2ger | waves at tantek |
| 17:26 | <tantek> | :) |
| 17:26 | <TabAtkins> | Like, using query to set the background-color of the page, or something equally silly. |
| 17:27 | <tantek> | TabAtkins - having trouble following the :read-write discussion in Bugzilla |
| 17:28 | <tantek> | I think my intent there was always to reflect user-alterability of the state of the inputs |
| 17:28 | <tantek> | so to that extent, I'm pretty sure I intended it to apply to checkboxes and radio buttons that the user can change the state of |
| 17:28 | <TabAtkins> | tantek: Yes, but now define that in terms of what precise HTML elements match it. ^_^ |
| 17:28 | <TabAtkins> | Yes, agree. |
| 17:28 | <annevk> | TabAtkins: yeah, but in case of e.g. Bugzilla it's essential |
| 17:28 | <tantek> | TabAtkins - ok, sure we can add more details |
| 17:28 | <TabAtkins> | I'm only excluding the button-typed inputs. |
| 17:28 | <TabAtkins> | annevk: Yes, certainly. |
| 17:28 | <tantek> | I wanted to see if we had highlevel / conceptual agreemtn too |
| 17:29 | <TabAtkins> | I'm sending feedback on the thread, just saying that "upto" as the only way to drop components probably isnt' sufficient. |
| 17:29 | <tantek> | or rather first, before specifying |
| 17:29 | <annevk> | TabAtkins: k, will look tomorrow |
| 17:29 | <annevk> | or tonight, we'll see |
| 17:29 | <tantek> | TabAtkins - where should the definition of what precise HTML elements match it go? |
| 17:29 | <tantek> | in CSS3-UI? Selectors? HTML? |
| 17:29 | <tantek> | or should I just write it up on a wiki page and we can decide later |
| 17:32 | <TabAtkins> | tantek: HTML. |
| 17:32 | <TabAtkins> | We're deciding it in the bug right now. |
| 17:32 | <tantek> | Bugzilla is not a good place for deciding things - sorry to say |
| 17:32 | <TabAtkins> | Well, "deciding". |
| 17:33 | <tantek> | hence IRC! :) |
| 17:34 | <tantek> | annevk - I want to add onfullscreenchange and onfullscreenerror to the Fullscreen API IDL - any objection? |
| 17:35 | <TabAtkins> | No objection from me, though I wish we had event streams. :/ |
| 17:35 | <tantek> | ok I'll do it then and annevk can revert it if he disagrees :) |
| 17:35 | <tantek> | the event firings etc. are already in the spec |
| 17:35 | <Ms2ger> | Clearly fullscreen should use futures |
| 17:35 | <tantek> | they're just missing from the IDL |
| 17:35 | <TabAtkins> | No, it shouldn't really. |
| 17:36 | <TabAtkins> | Repeated events, like fullscreenchange, are not a good match for futures. |
| 17:36 | <tantek> | Ms2ger - how can I capture that as an open issue? |
| 17:36 | <Ms2ger> | tantek, I jest |
| 17:36 | <tantek> | Ms2ger - thanks, a bit slow this morning. |
| 17:37 | <Ms2ger> | Shouldn't you be having coffee with the rest of the wg? :) |
| 17:37 | <tantek> | oh oops, right, maybe that would help |
| 17:37 | <tantek> | brb |
| 18:32 | <Hixie> | cabanier1: yt? |
| 18:43 | <gavinc> | karlcow: 8173 |
| 18:46 | <cabanier1> | Hixie: pong |
| 19:17 | <Hixie> | cabanier1: so i'm finally getting around to the fillrule feedback |
| 19:17 | <tantek> | someone here with a working Anolis, could you update Overview.html in fullscreen? |
| 19:18 | <tantek> | I just spent over an hour updating my Anolis (and some dependencies) and still got stuck |
| 19:18 | <Hixie> | tantek: http://anolis.hoppipolla.co.uk/aquarium.py |
| 19:18 | <tantek> | logged errors and solutions until I got stuck here: http://wiki.whatwg.org/wiki/Anolis#Troubleshooting |
| 19:19 | <Ms2ger> | Hixie, that's too old, unfortunately |
| 19:19 | <Hixie> | cabanier1: am i wrong in presuming that we should also have a fillrule argument for fill() when fill() is passed just a Path object? |
| 19:19 | <Hixie> | Ms2ger: it's what HTML uses :-) |
| 19:19 | <tantek> | Hixie, A problem occurred in a Python script. |
| 19:19 | <Ms2ger> | Hixie, yeah, and you don't have cross-spec references :) |
| 19:20 | <Hixie> | well, i do, but anolis' version of those don't work the way i want :-) |
| 19:22 | <tantek> | Hixie, interesting, it worked via URL but not upload |
| 19:24 | <tantek> | uh, by "worked" I should say - it gave me something that looked like a spec |
| 19:24 | <tantek> | however it is VERY different from the previous Overview.html - much more different than the edits I made should have caused |
| 19:25 | <tantek> | I suppose I could check it in and just let annevk update/fix it next time he commits |
| 19:25 | <tantek> | what could possibly go wrong |
| 19:25 | <Ms2ger> | Just checkin the source and leave the generated one alone |
| 19:30 | <tantek> | well it looked reasonable in the browser so I committed it |
| 19:31 | <tantek> | seemed worse to have them be out of sync |
| 19:31 | <tantek> | changes seemed minor, (un)quoted attributes, numeric entities vs. utf-8 |
| 19:31 | <tantek> | whitespace |
| 19:32 | <zcorpan> | why can't i mark the remaining bits in https://critic.hoppipolla.co.uk/r/5 as reviewed? |
| 19:37 | <zcorpan> | tantek: i ran make with an up-to-date (i think) anolis. diff was empty |
| 19:38 | <Ms2ger> | zcorpan, probably because it didn't run anolis |
| 19:38 | <Ms2ger> | zcorpan, try touch Overview.src.html && make |
| 19:39 | <zcorpan> | Ms2ger: ah, yeah |
| 19:40 | <Hixie> | MikeSmith: i'm gonna try putting "blocked awaiting responses to comment 15 (please remove this when replying)" in the status whiteboard for now |
| 19:41 | <zcorpan> | tantek: pushed |
| 19:44 | <MikeSmith> | Hixie: works for me :) |
| 19:44 | <zcorpan> | tantek: onfullscreenchange is listed in http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html |
| 19:45 | <zcorpan> | tantek: also it's nice to have separate commits for normative changes and for fluffing |
| 19:47 | <zcorpan> | (also, dunno if anne approves of pushing like this or if he prefers pull requests) |
| 19:50 | <divya> | hober: MikeSmith when is this SF plan going to happen |
| 19:50 | <divya> | i need to add it to my calendar |
| 20:14 | <tantek> | thanks for your help zcorpan |
| 20:17 | <tantek> | pushing works |
| 20:22 | <Hixie> | i wish bugzilla had a column in search results for "last person to touch this bug" |
| 20:25 | <tantek> | Hixie, a radio button is more like part of a select |
| 20:26 | <tantek> | than it is a button |
| 20:26 | <jgraham> | zcorpan: critic bug, I think |
| 20:26 | <jgraham> | But if you have reviewed them, I can mark them as reviewed |
| 20:26 | <tantek> | radio buttons and checkboxes should be :read-write if their state is changeable by the user |
| 20:26 | <tantek> | re: https://www.w3.org/Bugs/Public/show_bug.cgi?id=17812 |
| 20:28 | <zcorpan> | jgraham: i haven't actually reviewed interfaces.html but i guess it's just c/p |
| 20:28 | <zcorpan> | jgraham: i have reviewed everything else |
| 20:28 | <jgraham> | zcorpan: Actually I fixed the assignments |
| 20:28 | <jgraham> | You can mark everything now |
| 20:28 | <zcorpan> | ah |
| 20:28 | <jgraham> | So not really a bug, perhaps |
| 20:29 | <Hixie> | tantek: this is a definition of "write" quite foreign to me |
| 20:29 | <tantek> | Hixie - don't misinterpret the label for the meaning |
| 20:29 | <tantek> | would you have preferred :user-modifiable? |
| 20:29 | <TabAtkins> | Hixie: You're being a weird kind of overly-literable. |
| 20:29 | <TabAtkins> | s/able/al/ |
| 20:29 | <jgraham> | literable? |
| 20:29 | <tantek> | we're about 10 years past bike-shedding these selectors |
| 20:29 | <jgraham> | You could write books about him? |
| 20:30 | tantek | is old enough to remember when "writing" a bit of information was perfectly normal. |
| 20:32 | <Hixie> | TabAtkins: the term "readonly" has never applied to radio buttons as far as i am aware. There's a reason, for example, that neither HTML radio buttons nor Win32 radio buttons (the ones I'm familiar with) have a "read-only" mode. |
| 20:32 | <Hixie> | TabAtkins: they can be disabled, but not made read-only |
| 20:32 | <TabAtkins> | Hixie: ...and? |
| 20:32 | <Hixie> | TabAtkins: this is why i'm confused, because i would never have guessed that :read-write and :read-only would apply to radio buttons |
| 20:32 | <Hixie> | TabAtkins: and i'm still skeptical that they should |
| 20:33 | <TabAtkins> | Which is why it's a good thing you asked, and I told you what they should apply to. |
| 20:33 | <Hixie> | but i think you're wrong :-) |
| 20:33 | <tantek> | they apply to radio buttons, as as a group, they act semantically similar to a select, which certainly has read/readwrite semantics |
| 20:33 | <TabAtkins> | Well, 2-1 support for me, with tantek. |
| 20:33 | <TabAtkins> | And yes, what tantek said. |
| 20:33 | <TabAtkins> | (And checkboxes act like a multiselect.) |
| 20:34 | <Hixie> | list boxes and check boxes also don't have a concept of "read-only" |
| 20:34 | <Hixie> | only disabled vs enabled |
| 20:34 | <tantek> | Hixie, you're stubbornly arguing linguistic semantics from labels, rather than what the things in questions actually do / how they behave |
| 20:34 | <Hixie> | tantek: i don't understand the distinction. We're talking about what labels mean here. |
| 20:35 | <TabAtkins> | We're defining what they mean. You're claiming that the names don't match. This is a mismatch in argument goals. |
| 20:35 | <tantek> | what Tab said |
| 20:35 | <zcorpan> | jgraham: seems like i still can't mark quite everything as reviewed |
| 20:35 | <Hixie> | i'm having two arguments. one is about what the selectors spec should say, the other is about what it does say. |
| 20:35 | <TabAtkins> | The concept which is being labeled, however (in)accurately, by :read-write, applies equally to text inputs and checkboxes. |
| 20:36 | <Hixie> | i think the selectors spec _should_ say that :read-only and :read-write apply to text fields only. |
| 20:36 | <Hixie> | i think the selectors spec _does_ say basically nothing about what they apply to, it being too vague to unambiguously interpret. |
| 20:37 | <tantek> | I'm fine with adding more detailed description to Selectors, CSS3-UI etc. |
| 20:38 | <TabAtkins> | I'm not fine with defining it in terms of specific HTML elements. |
| 20:38 | <tantek> | even if that means we have to resort to explicitly listing HTML elements as one example of an applicable host language |
| 20:38 | <TabAtkins> | I'm fine with pointing to HTML's definition as an example for other languages to lean on. |
| 20:38 | <Hixie> | i don't think we need to list elements, just define what it is you want to match |
| 20:38 | <tantek> | TabAtkins - not even non-normative example? like the UA style sheet? |
| 20:38 | <tantek> | :read-write = user-modifiable |
| 20:39 | <tantek> | :read-only = user-viewable but not modifiable |
| 20:39 | <TabAtkins> | tantek: We have non-normative examples all over the place, referencing HTML quite a lot. No problem there. |
| 20:39 | <jgraham> | zcorpan: Oh. Which files? Can you change things in the "manage assignments" dialog (on the review page) |
| 20:39 | <tantek> | TabAtkins - ok cool |
| 20:39 | <Hixie> | e.g. "text fields whose contents can be edited when the control is focused match :read-write; text fields whose contents cannot be edited when the control is focused match :read-only. Other controls, disabled controls, and non-controls match neither." |
| 20:40 | <zcorpan> | jgraham: elements-embedded.js |
| 20:40 | <TabAtkins> | I disagree with that definition, and wont' use it. It is being overly specific to text fields, when the definition isn't intended to be limited to text. |
| 20:40 | <zcorpan> | jgraham: i opened manage assignments, checked all the boxes, saved. no difference |
| 20:40 | <Hixie> | TabAtkins: then define what it is you do mean :-) |
| 20:40 | <TabAtkins> | omg i did |
| 20:40 | <TabAtkins> | I gave you an explicit list over in the bug. |
| 20:41 | <Hixie> | right now it just says "An element matches :read-write if it is user-alterable, as defined by the host language" |
| 20:41 | <jgraham> | zcorpan: OK, *this* is a critic bug :) |
| 20:41 | <jgraham> | I can mark that as reviewed though |
| 20:41 | <tantek> | user-alterable sounds like user-modifiable |
| 20:41 | <tantek> | so that's good |
| 20:41 | <Hixie> | "user-alterable" is one of the least specific definitions ever |
| 20:41 | <Hixie> | i have no idea what it means |
| 20:41 | <TabAtkins> | Yes, becasue that is the most specific I can get without getting into a specific host language. |
| 20:41 | <TabAtkins> | That's your problem, Hixie. The rest of us seem to agree on it pretty well. |
| 20:42 | <zcorpan> | jgraham: reflection-original.html in the first commit also says "Pending", might also be a bug? |
| 20:43 | <Hixie> | ok well if the spec is remaining as "it's up to the host language", i really don't see anything wrong with what HTML says now |
| 20:43 | <Hixie> | so i guess the bug is WORKSFORME. |
| 20:43 | <Hixie> | since i think what you are describing neither matches the spec nor is sensible |
| 20:43 | <TabAtkins> | Dude. For godssake. |
| 20:44 | <TabAtkins> | I will override you and put an explicit list of HTML elements and states in the Selectors spec with a note that says "Note: this list exists because Hixie is being difficult" if you keep doing this. |
| 20:44 | <TabAtkins> | You disagree on what the word "user-alterable" means. I get that. Get over it. I'm telling you what elements HTML should associate with that word. |
| 20:45 | <zcorpan> | i'm gonna override both of you in the quirks spec!! |
| 20:45 | <Hixie> | it's not what you tell me that matters dude |
| 20:45 | <Hixie> | that's not how specs work |
| 20:45 | <Hixie> | it's what the spec says that matters |
| 20:45 | <Hixie> | it's not about HTML elements, it's about control types |
| 20:45 | <TabAtkins> | Yes it is. You write something in the spec. You asked me what should be written, I told you. |
| 20:45 | <tantek> | how about principle of least surprise? I think web devs would be surprised if checkboxes, radio button groups, select elements matched :read-only when the user was able to modify them |
| 20:45 | <Hixie> | HTML is not the only language to which selectors applies |
| 20:45 | <zcorpan> | In quirks mode, :read-write matches your mom. |
| 20:45 | <tantek> | HTML is the only language with UI elements to which selectors applies. XForms has been abandoned. |
| 20:45 | <jgraham> | I guess you could write on my mom with marker pen |
| 20:46 | <Hixie> | tantek: i agree that they'd be surprised if :Read-only matched those controls, but i think they'd be even more surprised if :Read-write matched them. they're not read-write controls nor read-only controls. they're not text fields. |
| 20:46 | <TabAtkins> | A <select> element is equivalent to a text input with a pattern on it. A radio group is equivalent to a select. A checkbox group is equivalent to a multi-select. All of these are just UI variances for the same underlying concept. |
| 20:46 | <jgraham> | But really why would you? |
| 20:46 | <Hixie> | TabAtkins: that is not consistent with how UI controls are conventionally described. |
| 20:46 | <TabAtkins> | An <input type=color> is equivalent to a text input, even if it's exposed only as a button that opens up a color picker. |
| 20:46 | <jgraham> | (FWIW I think I would expect :read-write to match selects/radio buttons) |
| 20:47 | <jgraham> | (I think that in my head :read-write really means :mutable) |
| 20:47 | <Hixie> | wait, type=color should match :Read-write too?! |
| 20:47 | <TabAtkins> | The concept of "input with text in it" that you're harping on is just bizarrely specific, and has no connection with the actual wording of the Selectors spec. |
| 20:47 | <TabAtkins> | ... |
| 20:47 | <TabAtkins> | Yes. It's in the list of things I said should be read-write in the bug. |
| 20:48 | <TabAtkins> | Seriously, where are you getting this notion that it only applies to text? Why? How? |
| 20:48 | <TabAtkins> | (When? What?) |
| 20:48 | <Hixie> | The concept of "input with text in it" that I'm talking about is the about what the definition of "Readonly" in UI is, it's not about CSS' current text. It's abotu what CSS _Should_ say |
| 20:48 | <jgraham> | Don't UAs do something already here? |
| 20:48 | <lecuyer> | Hixie wouldn't that be something like input[type=text]:not(:empty) ? |
| 20:49 | <Hixie> | Controls have several states, relevant here are "enabled", "readonly", and "disabled". Most controls only have the first and third of these. Text fields are the exception, they can be readonly. |
| 20:49 | <tantek> | an author could use <input type="number" min="1" max="10" step="1" value="5"> e.g. for a 1-10 rating input, and a UA could render that as a select list, while non-supporting UAs would fallback to having it be a text input |
| 20:49 | <tantek> | in both cases - it's read-write |
| 20:49 | <Hixie> | let me put this another way |
| 20:49 | <tantek> | whether the user is typing characters, or picking from a menu of options, the input is read-write |
| 20:49 | <TabAtkins> | Or it could be a range, or it could be a spinner. |
| 20:50 | <tantek> | right |
| 20:50 | <Hixie> | what's the point of having :enabled/:disabled of :read-only/:read-write are the same? |
| 20:50 | <Hixie> | s/of/if/ |
| 20:50 | <tantek> | the point is, the text field presentation vs. the select list presentation DOES NOT impact the :read-write - ness |
| 20:50 | <TabAtkins> | They're not. :disabled only matches disabled things. |
| 20:50 | <TabAtkins> | :read-only happens to *also* match disabled things (because you can't alter their state). |
| 20:50 | <Hixie> | can you point me to a :read-write:disabled control? |
| 20:50 | <tantek> | so that's the proof of why a select can be read-write |
| 20:50 | <TabAtkins> | No, because of what I just said. |
| 20:50 | <tantek> | and since radio button groups are just another presentation of select |
| 20:50 | <Hixie> | or a :read-only:enabled control that isn't a text field? |
| 20:50 | <tantek> | that's why radio buttons can be read-write |
| 20:51 | <TabAtkins> | In HTML, the readonly attribute only applies to text inputs. So, no. |
| 20:51 | <tantek> | similarly with a group of checkboxes and a multi-select |
| 20:51 | <TabAtkins> | That's not a generic argument, Hixie. |
| 20:52 | <TabAtkins> | So we're back again to you obviously arguing solely about naming. You're attached to the name "readonly" referring to the specific "readonly" state that HTML uses, and are refusing to wrap your head around the concept possibly being more general. |
| 20:52 | <TabAtkins> | Mutable vs immutable. |
| 20:52 | <TabAtkins> | User-alterable vs Static. |
| 20:52 | <TabAtkins> | Whatever. |
| 20:52 | <TabAtkins> | The names are the least important part of this, because we're stuck with them (they're very old). So stop hanging importance on them. |
| 20:52 | <Hixie> | this isn't just about HTML, e.g. Win32 has the same distinctions. |
| 20:52 | <Hixie> | I think your definition is bad, but putting that aside, how about "An element matches :read-write if it is enabled, and, for text fields, is not read-only; all other elements match :read-only"? or some such? |
| 20:53 | <Hixie> | where "enabled" and "read-only" can be host-language concepts |
| 20:53 | <Hixie> | (and the "enabled" state matches the one used for :enabled) |
| 20:54 | <TabAtkins> | That means that buttons will be :read-write, which is silly, because they're not mutable. They're *enabled*, yes, but they've got no user-alterable state. |
| 20:54 | <Hixie> | they have hte state of being pushed in or not |
| 20:54 | <TabAtkins> | That's not a significant state that we wish to care about. |
| 20:54 | <TabAtkins> | (And it's already covered generally by :active.) |
| 20:55 | <Hixie> | this is a really strange definition you're trying to have, i'm not surprised you're having trouble describing it normatively |
| 20:55 | <Hixie> | what's the use case? maybe that's a better starting point for figuring out what the definition should be |
| 20:55 | <TabAtkins> | Good lord, no. It's the intuitive definition that I, fantasai, tantek, jgraham, and I expect almost anyone I ask would have. |
| 20:56 | <TabAtkins> | You're the only one in this conversation so far who seems to be having trouble with it, and *I can't figure out why*. |
| 20:56 | <tantek> | Hixie - what's the use case in leaving them out? |
| 20:56 | <tantek> | based on principle of least surprise, writability = modifiability |
| 20:56 | sgalineau | grabs popcorn |
| 20:57 | <TabAtkins> | Tantek made a great argument by analogy just a few lines ago. Just read that. |
| 20:57 | <Hixie> | the text field vs select list thing? That's the same one you said earlier. |
| 20:58 | <TabAtkins> | Yes, number vs range vs select vs text input, and how they're all *the exact same thing*, just with different displays. |
| 20:58 | <tantek> | one might even say … different *appearances* ;) |
| 20:59 | <Hixie> | they're the same underlying data type, but they're no the same control |
| 20:59 | <lecuyer> | are there any non-modifiable inputs other than button? |
| 20:59 | <TabAtkins> | Duh. But they all have the same notion of "user-alterability". |
| 20:59 | <Hixie> | i mean by that argument a <button> that when clicked alters the value of a <span> between two values, is equivalent to a radio button and equivalent to a text field and should be :read-write |
| 20:59 | <TabAtkins> | lecuyer: All the button types: button/reset/submit/image. Also, hidden. |
| 21:00 | <TabAtkins> | Hixie: If we could magically and reasonably tell when JS was turning a button into something that altered state in the page in that way, I would agree with you. |
| 21:00 | <TabAtkins> | We can't, so I don't, and we don't. |
| 21:00 | <Hixie> | and technically <input type=submit> changes state (it changes what is submitted if it has a name) and <input type=reset> is clearly "user-alterable" since it affects every field in the form |
| 21:01 | <Hixie> | TabAtkins: oh wow, you'd actually want that button matching :read-write if you could?? |
| 21:01 | <tantek> | OH: "Google+ is write-only, no one reads it." |
| 21:01 | <Hixie> | i really don't understand what you expect people to use this pseudo-class for |
| 21:01 | <Hixie> | if it only matched read-only-able elements, i could see the use case |
| 21:01 | <Hixie> | but having it match everything means you'd only ever be able to use it with more selectors to narrow it down |
| 21:02 | <TabAtkins> | Hixie: In the imaginary world where the halting problem was cheap to solve, and AI was just a library that you called? Sure, knock yourself out. |
| 21:02 | <TabAtkins> | Please, god, stop willfully misinterpreting me. The list of :read-write elements is finite, and explained in the bug. |
| 21:03 | <Hixie> | what am i misinterpreting? |
| 21:03 | <Hixie> | (i swear it's not willful) |
| 21:03 | <TabAtkins> | "having it match everything..." |
| 21:03 | <tantek> | clearly you guys would be having more fun in the WebApps WG f2f :) |
| 21:03 | <lecuyer> | It's right in the title |
| 21:03 | <Hixie> | you want :read-only, :read-write { } to match everything, no? |
| 21:05 | <tantek> | Hixie, why, what's the use case behind that reasoning? |
| 21:06 | <Hixie> | i have no idea what the use cases are for these pseudos, that's what i'm trying to determine. In the absence of use cases, I default to assuming that they should match what their names imply they should match. |
| 21:06 | <Hixie> | as far as i can tell, the spec says ":read-only, :read-write { }" should match everything. |
| 21:06 | <TabAtkins> | Text inputs have a state, .value, which the user can alter. So do color inputs, range inputs, number inputs, etc. Checkboxes have a state, .checked, which the user alters. Selects have a state, .selectedIndex, which the user alters. |
| 21:06 | <Hixie> | ("An element matches :read-write if it is user-alterable, as defined by the host language. Otherwise, it is :read-only.") |
| 21:07 | <TabAtkins> | That's the unifying thread which we keep repeating, over and over again, and which you keep claiming to not understand. |
| 21:07 | <Hixie> | TabAtkins: i understand (though i have difficulty figuring out where you draw the line, hence wanting the spec to be clearer); my question is, why would you want that definition? What use is the pseudo with that definition? |
| 21:07 | <TabAtkins> | Submit buttons are questionable (they are sometimes used instead of a radio group), but I fall on the side of not including them in the group. They alter the state of the form, not themselves, and their effect is transient and part of the submission process, not an independent state. |
| 21:08 | <TabAtkins> | Man, I don't know the use for half of the user-input pseudos. I'm too long out of webdev, and I never liked forms much anyway. I'm just giving them reasonable definitions. |
| 21:08 | <Hixie> | :enabled and :disabled only apply to controls that _can_ be enabled and disabled, right? Why would :read-only and :read-write apply to everything? |
| 21:08 | <Hixie> | ok. I disagree that this definition is "reasonable". |
| 21:09 | <TabAtkins> | One issue at a time, please. Whether :read-only is :not(:read-write) can be discussed later. |
| 21:09 | <Hixie> | i think it's the same issue, personally. |
| 21:09 | <TabAtkins> | Right now we're covering the elements which are reasonably one or the other, and talking about which category they're in. |
| 21:09 | <lecuyer> | In all the large web projects I've worked on, I dont' think I've ever seen someone use :read-write |
| 21:10 | <TabAtkins> | lecuyer: I wouldn't define it if I were starting from scratch. But these are legacy pseudos. |
| 21:10 | <lecuyer> | or :read-only for that matter. People use :enabled |
| 21:10 | <Hixie> | maybe we can drop them? I wonder how commonly used they are. |
| 21:10 | <Hixie> | do we have metrics on this? |
| 21:10 | <Hixie> | (does chrome instrumentation track individual pseudos?) |
| 21:11 | <lecuyer> | you're at google, just 'grep :read-only -r /dev/interwebs' |
| 21:11 | <Hixie> | unfortunately we don't crawl CSS as far as I know |
| 21:11 | <TabAtkins> | Hixie: It can track individual pseudos that we're interested in. |
| 21:12 | <lecuyer> | TabAtkins: has nobody ever been interested in :read-only? telling? |
| 21:13 | <TabAtkins> | lecuyer: No idea. |
| 21:13 | <Hixie> | TabAtkins: we should do this for these pseudos |
| 21:14 | <Hixie> | TabAtkins: since apparently none of us know what the use cases are, or how often they are used, we probably need more data to work out what to do. |
| 21:17 | <lecuyer> | How do you guys collect data on that? Apart from announcing that it's being EOL'd and that you need usecases for not removing |
| 21:17 | <TabAtkins> | In Chrome, we can instrument it to count usage. |
| 21:21 | <lecuyer> | From what I can tell, most uses of uses of readonly is actually using the attr selector div[readonly] *not* using pseudos |
| 21:23 | <lecuyer> | s/most uses/the first page of search results/ |
| 21:23 | <cabanier1> | Hixie: adding a fillrule to 'fill(path)' makes sense |
| 21:24 | <cabanier1> | Hixie: however, I think there should be an object that takes a path + fillrule, or a path + strokeparameters |
| 21:24 | <cabanier1> | Hixie: and you pass this object to fill |
| 21:25 | <cabanier1> | hixie: that way you can do the heavy lifting of stroking and resolving of the winding rules offline |
| 21:26 | <cabanier1> | hixie: that object would also accurately describe an area so you can associate it with a region |
| 21:35 | <lecuyer> | Has there been any discussion of aliasing/inheriting rules from another otherwise-unrelated class? |
| 21:37 | <lecuyer> | I have the problem of not being able to use classes in my html (lots and lots of data selectors), so it'd be really nice if we could somehow define a bunch of classes and then in an attribute selector apply a predefined class |
| 21:37 | <lecuyer> | If that makes any sense |
| 22:05 | <TabAtkins> | lecuyer: I recommend using SASS and the @extend directive for now. |
| 22:05 | <TabAtkins> | lecuyer: I'm slowly pursuing putting @extend in CSS itself. |
| 22:08 | <Hixie> | d'oh, cabanier left |
| 22:10 | <krit> | Hixie: he just came back from a travel |
| 22:12 | <lecuyer> | TabAtkins SASS is nice, and also generates about 1900 LOC I was hoping there could be an actually css solution in the future |
| 22:13 | <lecuyer> | TabAtkins: Want help with that? :) |
| 22:13 | <TabAtkins> | There's a reason it generates that much. ^_^ |
| 22:13 | <annevk> | tantek: the handlers are defined by HTML already |
| 22:13 | <annevk> | tantek: also, you're destroying blame :/ |
| 22:13 | <TabAtkins> | Nah, I'm already friends with Chris Eppstein. Got all the help I need right now. |
| 22:15 | <annevk> | hober: time for design.spec.whatwg.org? |
| 22:16 | <hober> | annevk: i thought about picking it back up in the html wg |
| 22:16 | <hober> | annevk: but then i realized what i was thinking |
| 22:16 | <TabAtkins> | What's that for? |
| 22:16 | <annevk> | hober: don't do it there :) |
| 22:17 | <Hixie> | design spec? |
| 22:17 | <hober> | TabAtkins: the Living Standard of HTML Design Principles |
| 22:17 | <Hixie> | probably more wiki material |
| 22:17 | <hober> | yeah |
| 22:17 | <TabAtkins> | Ah, kk. |
| 22:20 | <lecuyer> | TabAtkins: any plans to allow nesting of rlues like in regions sans-'flows-from'? |
| 22:21 | <lecuyer> | ie how in SASS I can just put rules inside of each other and it'll automatically do the nesting for me? |
| 22:21 | <TabAtkins> | That's inherently ambiguous, grammatically. Can't be done without magic or unlimited lookahead. |
| 22:22 | <TabAtkins> | SASS is okay with the latter. |
| 22:22 | <TabAtkins> | (You can't tell whether, in "foo { bar:baz ... }", the "bar:baz" part is a property whose value starts with "baz", or the start of a selector for a "bar" element with a ":baz" pseudoclass.) |
| 22:25 | <lecuyer> | TabAtkins you could simplify that by not allowing mixing of child selectors and actual rules, though couldn't you? |
| 22:25 | <tantek> | annevk - why split where the handlers are vs. where the other attributes are? |
| 22:25 | <TabAtkins> | That's not very useful, then. It means you have to do "foo { color: blue; ...} foo { bar { ... } }", repeating yourself every time. |
| 22:25 | <tantek> | e.g. fullscreenEnabled, fullscreenElement ? |
| 22:25 | <TabAtkins> | And it's still ambiguous - how do you tell the difference between the two cases? |
| 22:26 | <annevk> | tantek: also, you didn't define the attributes |
| 22:26 | <tantek> | apologies for the blame destroying |
| 22:26 | <lecuyer> | a ; vs a { |
| 22:26 | <annevk> | tantek: because HTML defines all the attributes on Document/Element already |
| 22:26 | <TabAtkins> | That requires looking forward an arbitrary amount of tokens, and prevents us from ever using {} inside of a declaration. |
| 22:26 | <tantek> | annevk - but it doesn't define fullscreenEnabled, fullscreenElement |
| 22:26 | <annevk> | tantek: in any event, there's some outstanding issues around the events |
| 22:26 | <TabAtkins> | The CSS grammar is specially tuned to only require a single token of lookahead, because that helps performance and maintainability. |
| 22:26 | <annevk> | tantek: well those are not event handlers |
| 22:27 | <tantek> | annevk - but you said "HTML defines all the attributes on Document/Element" |
| 22:27 | <annevk> | tantek: HTML doesn't define everything... just event handlers and HTML stuff (such as the allowfullscreen attribute) |
| 22:27 | <lecuyer> | gotcha, where is that doc'd? |
| 22:27 | <tantek> | they're attributes right? |
| 22:27 | <TabAtkins> | lecuyer: http://dev.w3.org/csswg/css-syntax |
| 22:27 | <tantek> | ok I'm confused on how the split works then |
| 22:27 | <annevk> | tantek: I meant event handler attributes, not the other kind |
| 22:27 | <TabAtkins> | The fact that it's a 3-character lookahead tokenizer and 1-token lookahead parser isn't explicitly documented, but it's a property I tried hard to maintain while writing it. |
| 22:27 | <lecuyer> | Awesome. now I can stop busting into a conversation with things to get shot down :) |
| 22:28 | <annevk> | anyway, I'll sort this out at some point |
| 22:28 | <tantek> | annevk - sorry - that's what I get for trying to improve things ;) |
| 22:28 | <tantek> | i'm fine with wherever the definition/declarations go |
| 22:29 | <tantek> | if onfullscreenchange and onfullscreenerror are defined in HTML, then can we at least put references to those definitions in Fullscreen? |
| 22:29 | <tantek> | (hyperlinks) |
| 22:29 | <tantek> | so they're discoverable? |
| 22:29 | <tantek> | as a webdev I don't expect to go poking through HTML just in case it might define things that my spec might specifically need/use that's so spec-specific |
| 22:30 | <annevk> | yeah I guess, once we sort out the details |
| 22:30 | <tantek> | ok cool |
| 22:30 | <annevk> | i generally try to avoid adding makeup until stuff is somewhat implemented |
| 22:31 | <tantek> | well those eventhandlers are implemented in webkit and gecko so... |
| 22:31 | <Hixie> | am i right in assuming that it's not possible to convert any path plus either the nonzero rule or the oddeven rule to an equivalent path that is the same in both evenodd and nonzero modes? |
| 22:32 | <Hixie> | seems like you'd have to do something that affects where dashes are drawn, at a minimum |
| 22:32 | <hober> | in general that's not possible, yeah |
| 22:32 | <Hixie> | k |
| 22:32 | <Hixie> | wonder what cabanier wanted then |
| 22:32 | <TabAtkins> | Yeah, you can have a path that is equivalent for filling, but not the rest. |
| 22:33 | <TabAtkins> | It can't be equivalent even for solid strokes unless you convert the strokes into filled regions. |
| 22:33 | <Hixie> | maybe he just wanted an object that remembered a particular state so you didn't have to keep passing that around |
| 22:33 | <Hixie> | not a Path, but a new object |
| 22:33 | <Hixie> | that would make sense i guess |
| 22:33 | <Hixie> | for some future version |
| 22:41 | <Hixie> | cabanier: thanks |
| 22:42 | <cabanier> | hixie: I just reconnected. will read the log |
| 22:45 | <cabanier> | hixie: yes, the object would remember the state. I made a proposal on whatwg a couple of months ago and wrote a blog entry: http://blogs.adobe.com/webplatform/2013/01/31/revised-canvas-paths/ |
| 22:45 | <cabanier> | hixie: just some ideas |
| 22:47 | <Hixie> | cabanier: yeah the union thing is something that would indeed be helpful |
| 22:47 | <Hixie> | cabanier: but defining exactly what the resulting path is seems non-trivial |
| 22:48 | <cabanier> | Hixie: that's true. You have to calculate the intersection |
| 22:48 | <cabanier> | Hixie: there are libraries out there that do it |
| 22:48 | <Hixie> | cabanier: you have to define it in enough detail that dashed lines end up the same |
| 22:49 | <cabanier> | Hixie: google's skia people are working on a good one |
| 22:49 | <cabanier> | Hixie: yes. that should be no problem. |
| 22:49 | <Hixie> | i think "no problem" is probably optimistic |
| 22:49 | <Hixie> | but ok :-) |
| 22:49 | <cabanier> | Hixie: are you thinking about where the path would start? |
| 22:50 | <Hixie> | for instance |
| 22:50 | <Hixie> | and what direction it's in, and everything like that |
| 22:50 | <cabanier> | yes |
| 22:50 | <cabanier> | true |
| 22:50 | <Hixie> | incidentally, i don't think we need a new object for this -- seems like you should be able to use Path for this, since the shape is basically just a path, still |
| 22:50 | <cabanier> | I guess that would be hard to define |
| 22:51 | <Hixie> | it's really just another way to add a path, one that happens to be destructive to the existing data |
| 22:51 | <cabanier> | it's not really a path anymore |
| 22:51 | <Hixie> | if you can stroke it, it seems very pathy |
| 22:51 | <cabanier> | true. maybe you shouldn't be able to stroke it :-) |
| 22:51 | <Hixie> | that's the only example you gave :-P |
| 22:52 | <Hixie> | i gotta go, meeting |
| 22:52 | <cabanier> | k |
| 22:52 | <Hixie> | but this is definitely something we should do eventually |
| 22:52 | <Hixie> | if we can define it convincingly |
| 22:52 | <Hixie> | bbl |
| 23:11 | <annevk> | heh http://polyglotconf.com/ |
| 23:12 | <annevk> | (don't worry, it's not about XHTML) |
| 23:53 | <Hixie> | i'm starting to really not like positional arguments |
| 23:54 | <Hixie> | if only named arguments weren't so damn verbose |
| 23:54 | <TabAtkins> | I agree, but options objects make it hard to justify named arguments now. :/ |
| 23:57 | <cabanier> | TabAtkins: how many API's are using option objects these days? |
| 23:57 | <Hixie> | options objects are essentially named arguments |
| 23:57 | <TabAtkins> | A decent number. |
| 23:57 | <TabAtkins> | Hixie: Yeah. |
| 23:57 | <Hixie> | and they're really verbose :-) |
| 23:57 | Hixie | is possibly even less of a fan of those |
| 23:58 | <cabanier> | really? last time I checked, they were very broken in the webkit/blink preprocessor |
| 23:58 | <cabanier> | Hixie: JS people love them |
| 23:58 | <Hixie> | my problem right now is isPointInPath() |
| 23:58 | <cabanier> | yeah |
| 23:58 | <Hixie> | which up to now has had the syntax (x, y) or (path, x, y) |
| 23:59 | <Hixie> | everything else that optionally takes a path becomes (), (path), (fillRule), (path, fillRule) |
| 23:59 | <Hixie> | so where the heck do i put the fillRule on isPointInPath? |