00:00
<AryehGregor>
TabAtkins, on reflection, I actually don't think styling of error messages is essential for HTML 5 forms. It's not meant to totally replace script. It lets you declare constraints in a nice, simple, standard, easy-to-use, declarative manner. If the UA supports script, you can use the script interfaces provided to override the default error handling.
00:00
<AryehGregor>
If not, or if you can't be bothered or don't care much about aesthetics, you can use the UA defaults.
00:01
<TabAtkins>
But that's the two extremes - ignore it entirely, or roll a completely homebrew error message.
00:01
<TabAtkins>
I believe there's a middle area that's still useful to hit.
00:01
<AryehGregor>
Hmm. Maybe. But it sounds very complicated.
00:01
<AryehGregor>
When you start trying to work out the details, I mean.
00:01
<TabAtkins>
Hmm, I think it ends up relatively simple.
00:02
<TabAtkins>
At least, if the definitions of the pseudoclasses are modified appropriately.
00:03
<TabAtkins>
input:invalid('range-underflow')::error { content: "This is too small."; border: 2px solid red; padding: 5px; background: wheat; color: red; font-weight: bold; }
00:03
<TabAtkins>
Or whatever.
00:03
<TabAtkins>
That's assuming that all the features are available.
00:03
<AryehGregor>
And that box gets put where? Undefined? How do you know if there's enough space, etc.?
00:03
<TabAtkins>
If ::error isn't reliably available, then use input::error { display: none; } and input:invalid('range-underflow')::after { --rules-- };
00:04
<TabAtkins>
::error box is generated in a UA-defined location.
00:04
<TabAtkins>
UA is expected to ensure that it fits on the page.
00:04
<AryehGregor>
And displays when? Also UA-defined?
00:05
<TabAtkins>
Yes. Opera does it on submit, but it would probably also be fine to do it whenever the element matches :invalid, assuming :invalid is changed to not match immediately on pageload.
00:06
<AryehGregor>
If you aim for middle ground, you run the risk of hitting too high to satisfy half the authors and too low to satisfy the other half.
00:06
<TabAtkins>
True.
00:06
<TabAtkins>
So I'm aiming for something that would satisfy me as an author.
00:07
<AryehGregor>
The proposal is quite rigid. If you want even slightly more control, you have to throw the whole thing out and redo it from scratch.
00:07
<TabAtkins>
Indeed, but if you give up any more control, you *explode* in complexity.
00:07
<AryehGregor>
Hmm.
00:07
<TabAtkins>
To the point that doing it in script is comparable.
00:07
<AryehGregor>
Well, yes. Doing it in script isn't so bad.
00:07
<AryehGregor>
Not with all the nice APIs that were added.
00:07
<TabAtkins>
This is true.
00:07
<AryehGregor>
A few lines, really.
00:08
<AryehGregor>
Well, depending on what you want to do.
00:08
<TabAtkins>
But I dunno the accessibility issue, especially when compared to the native error semantics.
00:08
<Lachy>
AryehGregor, I initially thought the same as you, but after speaking with our dev relations person about this, there are apparently a lot of authors who don't want all the complexities of using javascripts just to make error messages look nice
00:09
<AryehGregor>
Yeah, I agree that not using JavaScript would be nice.
00:09
<AryehGregor>
I actually just said on the whatwg list how much I preferred this declarative stuff to even one line of JavaScript.
00:09
<AryehGregor>
(in the case of autofocus)
00:09
<TabAtkins>
Yeah.
00:10
<JonathanNeal>
JS has its place :-)
00:10
<TabAtkins>
Especially since there are so many little ways that the simple js solution is wrong.
00:10
<TabAtkins>
And by the time you get it right, it's way too big and omigodwhydon'tbrowsersjustdothisformeforgodsakes
00:21
<AryehGregor>
Wouldn't a decent working solution just be (kind of pseudo-codey since my JS is terrible): onchange="if (!this.validity.valid) appendErrorMsg(this)" oninput="if (this.validity.valid) removeErrorMsg(this)", with appendErrorMsg() and removeErrorMsg() being a line or two?
00:21
<AryehGregor>
Most of the effort seems like it would go into writing up descriptions for every possible error condition.
00:21
<AryehGregor>
Or combinations thereof.
00:21
<TabAtkins>
Yes.
00:22
<TabAtkins>
That would work just fine.
00:22
<AryehGregor>
Oh, there's even an invalid event.
00:22
<AryehGregor>
Aha.
00:22
<AryehGregor>
Just use this.validationMessage.
00:22
<AryehGregor>
I was thinking that should exist, and it does. :)
00:24
<AryehGregor>
Bah, I really don't know any JavaScript.
00:24
<TabAtkins>
can you point me to the invalid event?
00:24
<AryehGregor>
I only see one reference to it, actually.
00:24
<AryehGregor>
Perhaps it's an error.
00:25
<AryehGregor>
"Returns true if the element's value has no validity problems; false otherwise. Fires an invalid event at the element in the latter case."
00:25
<TabAtkins>
I do know javascript, though with a jQuery accent.
00:25
<TabAtkins>
spec referencee?
00:25
<AryehGregor>
http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#the-constraint-validation-api
00:25
<AryehGregor>
valid = element . checkValidity()
00:25
<AryehGregor>
Under there.
00:26
<AryehGregor>
But I don't see it mentioned elsewhere in the spec.
00:26
<AryehGregor>
No, I see now.
00:26
<AryehGregor>
It's mentioned elsewhere.
00:26
<AryehGregor>
Or no, maybe it's not.
00:26
<AryehGregor>
Anyway.
00:27
<TabAtkins>
Yeah, I don't see it elsewhere. I just see references to firing the invalid event.
00:28
<AryehGregor>
Well, I guess that's enough. Events don't really have any properties other than a name.
00:28
AryehGregor
tries to figure out how to say "add some HTML right after the current element" without having to do all this document.createElement(); etc. etc. stuff
00:30
<TabAtkins>
$("some html").insertAfter(another element);
00:31
<TabAtkins>
Or $(element).after("some html"); if that's more convenient.
00:31
<AryehGregor>
Okay, but if I'm trying to come up with a solution that's only a few lines long, it's kind of cheating to use a multi-thousand line library. :)
00:31
<TabAtkins>
It's not my fault that stuffs not part of ecma. It should be. ^_^
00:34
<AryehGregor>
onchange="this.checkValidity()" oninvalid="err = document.createElement('div'); err.class='error'; err.appendChild(document.createTextNode(this.validationMessage); document.insertBefore(err, this.nextSibling);" oninput="if (this.validity.valid && this.nextSibling.class == 'error') this.nextSibling.removeNode()"
00:34
<AryehGregor>
That's one line, technically.
00:34
<AryehGregor>
Insofar as a "line" is delimited by "\n" rather than, say, ";".
00:34
<AryehGregor>
(It's totally untested and almost certainly wrong.)
00:34
<TabAtkins>
Your technical definition is useless and wrong.
00:35
<AryehGregor>
Hey, it works great for Unix utilities.
00:35
<AryehGregor>
No need to make up different definitions just because it's a programming language.
00:37
<TabAtkins>
$(input).change(function(){this.checkValidity();}).invalid(function(){$("<div class='error'>").text(this.validationMessage).insertAfter(this);}).input(function(){if(this.validity.valid){$("+ .error", this).remove();});
00:37
<TabAtkins>
That shoudl work.
00:37
<AryehGregor>
Hmm.
00:37
<AryehGregor>
It looks like checkValidity() in Opera fires its own custom error thingie.
00:37
<AryehGregor>
Maybe I need to return false?
00:38
<TabAtkins>
If the invalid event isn't cancelled, it triggers the validation stuff.
00:38
<TabAtkins>
So return false from oninvalid;
00:38
<AryehGregor>
Doesn't seem to help.
00:38
<AryehGregor>
"When the checkValidity() method is invoked, if the element is a candidate for constraint validation and does not satisfy its constraints, the user agent must fire a simple event called invalid that is cancelable (but has no default action)"
00:39
<AryehGregor>
I'll try using element.validity.valid tactic instead.
00:46
<TabAtkins>
Man, as soon as I start writing jQuery I get screwed up on PHP. Too much use of the $ glyph.
00:46
<AryehGregor>
Oh, rats. I'm not sure Opera 9.6 supports validationMessage.
00:47
<AryehGregor>
Hmm.
00:50
<AryehGregor>
I think I've got this working, except validationMessage seems to always be empty.
00:51
<TabAtkins>
Sweet. And you got it suppressing the native Opera error display?
00:52
<AryehGregor>
Well, not exactly.
00:52
<AryehGregor>
I didn't try that.
00:53
<TabAtkins>
Well we need that. ^_^ I suppose we can defer to ::error existing and letting us display:none it, but I'd rather not if possible.
00:54
<AryehGregor>
Since Opera only triggers on form submit, you should be able to just stop the form submit to override, I'd assume.
00:54
<TabAtkins>
Hmm, that's true.
00:54
<AryehGregor>
How can you dump all an element's attributes to alert()? Or otherwise inspect them?
00:54
<TabAtkins>
A quick loop through the form, manually checking validity, and cancelling submit on fail.
00:54
<AryehGregor>
There's a method for that.
00:55
<TabAtkins>
There is? I don't know.
00:55
<AryehGregor>
form.checkValidity()
00:55
<TabAtkins>
didn't you say that checkValidity on an element triggers it to display the native messages, though?
00:55
<AryehGregor>
Hmm.
00:56
<AryehGregor>
The spec doesn't actually say that it does.
00:56
<TabAtkins>
Yah, but Opera does so, right?
00:56
<AryehGregor>
On inputs, yes. Forms, dunno.
00:56
<TabAtkins>
Oh, right. I would *assume* that form.checkValidity just does checkValidity on each element, but I'd need to test.
00:56
<AryehGregor>
Probably you're right.
01:00
<AryehGregor>
I think I'm odd. Given that I wasn't able to easily figure out from running JavaScript whether validationMessage is supported, my first inclination was to grep the source code for Opera for "validationMessage". Given that's impossible, my second inclination was to grep the binary.
01:00
<AryehGregor>
$ grep validationMessage /usr/lib/opera/9.64/opera
01:00
<AryehGregor>
Binary file /usr/lib/opera/9.64/opera matches
01:00
<AryehGregor>
So I guess it must have some kind of support, huh?
01:00
<TabAtkins>
One would think. But perhaps it's just /* Seriously, put in something for validationMessage when I'm less drunk. */
01:01
<TabAtkins>
except maybe in swedish.
01:01
<AryehGregor>
Comments don't make it into the binary.
01:01
<TabAtkins>
But you didn't find it in the source... strange.
01:01
<AryehGregor>
. . . in what source?
01:01
<TabAtkins>
Oh, you *couldn't*.
01:01
<AryehGregor>
Opera is closed-source.
01:01
<TabAtkins>
Sorry, misread you.
01:01
<AryehGregor>
Anyway.
01:02
<AryehGregor>
Okay, validationMessage exists on the element, but is just the empty string.
01:02
<AryehGregor>
Hmm.
01:02
<TabAtkins>
So they just set it up to match the API, but aren't fully conforming yet.
01:02
<AryehGregor>
Or I'm doing something wrong.
01:03
<AryehGregor>
Maybe it's in 10.00.
01:04
<TabAtkins>
Send me a test page, I"ll check it.
01:04
<AryehGregor>
onchange="this.checkValidity(); if (!this.validity.valid) { err = document.createElement('div'); err.class='error'; err.appendChild(document.createTextNode(this.validationMessage)); this.parentNode.insertBefore(err, this.nextSibling); } alert(this.validationMessage);" oninput="if (this.validity.valid and this.nextSibling.class == 'error') this.nextSibling.removeNode()"
01:04
<AryehGregor>
The alert() is for debugging, of course.
01:04
<TabAtkins>
so you just popped that onto an <input>?
01:05
<AryehGregor>
A more minimal test case would just be, say: <input pattern=... name=foo onchange="alert(this.validationMessage)">
01:05
<AryehGregor>
<!doctype html><title>Test</title><form><input pattern=... name=foo onchange="alert(this.validationMessage)"><input type=submit></form>
01:05
<AryehGregor>
Seems to always be the empty string.
01:05
<AryehGregor>
(... is the actual pattern here, not a placeholder :P)
01:06
<TabAtkins>
Haha, interesting.
01:06
<TabAtkins>
Also, awesome.
01:06
<AryehGregor>
Which part?
01:06
<TabAtkins>
Anyway, ys, 10b2 also gives me the empty string.
01:07
<TabAtkins>
Oh, the part where ... is a valid pattern
01:07
<TabAtkins>
even without quotes
01:07
<AryehGregor>
I was actually using ....* as my pattern, but ... seemed more natural.
01:07
<AryehGregor>
Heh.
01:07
<AryehGregor>
I wrote an abstraction layer for MediaWiki that automatically decides whether to add quotes.
01:07
<AryehGregor>
It's crazy what you don't have to quote.
01:07
<AryehGregor>
Minimum length of 10: pattern=.{10,}
01:07
<AryehGregor>
No quotes needed.
01:08
<AryehGregor>
The only unintuitive character that needs quotes is =.
01:08
<TabAtkins>
I'd probably quote that anyway. I quote anything that goes beyond alphanums and -
01:08
<AryehGregor>
Yeah, but my abstraction layer automatically doesn't quote it. :)
01:08
<AryehGregor>
(saves two bytes . . .)
01:09
<AryehGregor>
That's the funny part. When I saw the HTML output I went "WTF?".
01:09
<AryehGregor>
I'd probably quote that too if I did it by hand.
01:09
<TabAtkins>
Hehe
01:10
<AryehGregor>
Anyway, I think my code is okay proof-of-concept. The only reason it's so long is because DOM methods are so stupidly clumsy.
01:10
<TabAtkins>
Nod
01:11
<TabAtkins>
I blame Java.
01:11
<AryehGregor>
err = document.createElement('div'); err.class='error'; err.appendChild(document.createTextNode(this.validationMessage)); this.parentNode.insertBefore(err, this.nextSibling);
01:11
<AryehGregor>
vs. something sane like the jQuery you gave.
01:12
<AryehGregor>
$(this).after("<div class=error>" + this.validationMessage + "</div>");
01:12
<TabAtkins>
yup
01:12
<AryehGregor>
<3 jQuery
01:12
<TabAtkins>
I didn't program *any* js before jQuery.
01:13
<AryehGregor>
So anyway, the main flexibility I think you get from this is control over the timing and location of the error message.
01:13
<AryehGregor>
You're pretty limited in how you style it if you can't control where it will appear, I'd think.
01:13
<AryehGregor>
You don't know what a good size is, etc.
01:13
<TabAtkins>
If it's abspos floating in an intelligent area determined by the UA, though, I think that'll generally be good enough.
01:14
<TabAtkins>
Don't write a novel in the text, of course.
01:15
<AryehGregor>
Isn't "abspos floating" an oxymoron?
01:15
<TabAtkins>
Bah, stupid CSS eating all the good english terms.
01:15
<TabAtkins>
absposed into an intelligent area.
01:16
<AryehGregor>
Or mysteriously made to appear there, as the case may be.
01:16
<AryehGregor>
Anyway. What about timing?
01:16
<AryehGregor>
Neither of us thinks Opera's timing is very good.
01:16
<AryehGregor>
It should be onchange instead of onsubmit, where that makes sense.
01:16
<TabAtkins>
I think displaying on submit is fine. I just disagree with the timing of :invalid
01:18
<Hixie>
jgraham: you should make your script grab the sections from the open bugs too, since they provide IDs
01:23
<TabAtkins>
All right, done with work now, only an hour and a half late.e
01:30
<TabAtkins>
Hixie: would a proposal to change the selectors that match invalid form elements be best in whatwg or www-style?
01:33
<Hixie>
which text do you want to change, Selectors, or HTML5?
01:33
<TabAtkins>
I don't think that Selectors has any relevant text, so HTML5. So I guess that answers my question.
01:34
<Hixie>
pretty much :-)
01:34
<Hixie>
HTML5 is intending to do whatever selectors says
01:34
<Hixie>
so if you can interpret selectors in a different way than html5 does, then let me know
01:35
<Hixie>
oh, do you mean :invalid?
01:35
<TabAtkins>
Yeah.
01:35
<Hixie>
that might be in CSS3 UI rather than Selectors
01:35
<Hixie>
i forget where we drew that line
01:35
<TabAtkins>
:invalid, and :out-of-range (and their converses)
01:35
<Hixie>
i think they're in css3 ui
01:35
<Hixie>
so everything i said, but s/selectors/css3 ui/
01:36
<TabAtkins>
Oh yeah, there we go.
01:36
<TabAtkins>
Of course, the latest draft here is from *2004*. Is tantek even part of www-style anymore?
01:36
<TabAtkins>
Considering he threw a hissy fit a few months ago and claimed to be unsubscribing, perhaps not?
01:39
<TabAtkins>
Hrm, looks like I need to raise separate issues in both whatwg *and* www-style.
01:39
<TabAtkins>
But I already filed the whatwg issue as a spec bug today, so maybe that's okay?
01:40
<Hixie>
i haven't been following css at all recently
01:40
<TabAtkins>
Eh, that's fine. I don't think we've been doing much relevant to html.
01:40
<Hixie>
i look forward to sticking my head into their wg meeting in november and seeing if they made any progress since i stopped going to the meetings
01:40
<TabAtkins>
That's the one in the bay area, right?
01:40
<Hixie>
yah
01:40
<Hixie>
you going?
01:40
<TabAtkins>
I might be going then. ^_^ Just got approved as an Invited Expert this morning.
01:41
<Hixie>
sweet
01:41
<TabAtkins>
Yus.
01:41
<Hixie>
if you're an htmlwg member, google's offering to pay the w3c's $150 fee for wed-fri
01:41
<TabAtkins>
Oh man, awesome.
01:41
<AryehGregor>
Speaking of which, does anyone know what the procedure is for becoming an Invited Expert in the HTML WG? It seems like the bar is pretty low, so I applied, but I don't know when to expect a response.
01:41
<TabAtkins>
How do I get up on that.
01:41
<TabAtkins>
Aryeh: it's described over on whatwg.org
01:41
<AryehGregor>
Or what response to expect.
01:42
<TabAtkins>
It takes several days.
01:42
<Hixie>
TabAtkins: http://lists.w3.org/Archives/Public/public-html/2009Jul/0937.html
01:42
<Hixie>
AryehGregor: look at one of the whatwg blog entries from 2007 or so
01:42
<TabAtkins>
Ah, I wasn't part of htmlwg at that point.
01:43
<Hixie>
TabAtkins: if i don't get up to the 20-person cap, i might be able to swing getting you the $100 for the css side of things too -- remind me in the e-mail
01:43
<AryehGregor>
Aha, so I have to e-mail a couple of people in addition to filling out the Invited Expert Application Form?
01:43
<Hixie>
AryehGregor: it's a whole Process
01:43
<TabAtkins>
Any idea what the cut-off on getting in on that is, Hixie? Whether or not I go depends on whether I can scrape up enough by November to head there. I'll probably have enough in my vacation fund by then to get me and my wfie out there.
01:43
<TabAtkins>
Aryeh: I didn't have to email anyone, though the Process says to.
01:43
<TabAtkins>
I just waited, and like 10 days later was in.
01:44
<AryehGregor>
It's been . . . 7 days.
01:44
<AryehGregor>
So I'll wait a few more.
01:44
<AryehGregor>
Thanks.
01:44
<Hixie>
TabAtkins: http://lists.w3.org/Archives/Public/public-html/2009Aug/0363.html
01:45
<Hixie>
TabAtkins: (drop me an e-mail if you think it's possible you might want to go, though, so i can reserve you a spot on my list)
01:45
<TabAtkins>
Mid-September, okay.
01:45
<TabAtkins>
I'll put the question to the wife tonight, figure out our finances.
01:45
<TabAtkins>
Hixie: It's definitely *possible* that I'd want to go. It's just a matter of money, not will. ^_^
01:45
<Hixie>
:-)
01:45
<Hixie>
i wonder if, if i get enough people to go, i can say that that gets me out of going
01:46
Hixie
hates meetings
01:46
<TabAtkins>
Haha
01:46
<TabAtkins>
I want a chance to meet people face-to-facee.
01:46
<Hixie>
yeah, the social aspect is nice
01:48
<TabAtkins>
So, Hixie. I filed a spec bug today (7411) on the selectors matching invalid elements. Should I raise that in an actual email, or is that sufficient?
01:48
<Hixie>
spec bug and e-mail are equivalent to me
01:49
<Hixie>
the only difference is which line they affect: http://www.whatwg.org/issues/data.html
01:49
<TabAtkins>
k. Should I sign up for bugzilla and add more detail?
01:49
<Hixie>
only if you think there's not enough detail
01:49
<TabAtkins>
Hmm. Eh, it probably is. How can I get Bugzilla to email me when the bug gets its status changed?
01:50
<Hixie>
add yourself to the cc list
01:50
<TabAtkins>
Gotcha.
01:55
<TabAtkins>
All right, further detail given, and cc added.
01:57
<cardona507>
hixie - are there still 15 seats open? and if so are there qualifications to be involved?
01:58
<Hixie>
there's still plenty of open spots, yes
01:58
<Hixie>
http://lists.w3.org/Archives/Public/public-html/2009Jul/0937.html and http://lists.w3.org/Archives/Public/public-html/2009Aug/0363.html cover everything there is to know, i think
01:58
<Hixie>
ok, i gotta go
01:58
<Hixie>
bbiab
02:06
<othermaciej_>
where in teh spec are the UA conformance rules for doctype?
02:09
<TabAtkins>
Is this good enough? http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#the-doctype
02:11
<othermaciej_>
that seems to define the syntax for authors, but not the UA processing requirements (such as what doctypes trigger quirks mode)
02:17
<othermaciej>
TabAtkins: it seems the only place to define quirks behavior is in a weird implicit way in the parsing algorithm
03:31
<JonathanNeal>
Hello!
03:36
<cardona507>
hello
03:41
<JonathanNeal>
Hey cardona507
04:11
<JonathanNeal>
<body><header></header><section><h1>Page Title</h1><p>Hello World!</p></section><footer>Copyright &copy; 2009</footer></body> is a basic html5 page, yes?
04:12
<JonathanNeal>
Doh, except that I did not put anything in the <header />
04:16
<cardona507>
shouldn't it be surrounded by <html></html>?
04:16
<JonathanNeal>
I meant, within the body.
04:21
<cardona507>
looks pretty basic to me
04:36
<JonathanNeal>
Within the header, that would be the header for the site or the page, right?
04:45
<cardona507>
are you asking if what goes between <header> & </header> is what you see on the page as a header?
05:17
<JonathanNeal>
cardona, here's a very basic example of a valid html5 page. Is this right? http://pastebin.com/d50828caa
05:21
<cardona507>
It looks good to me. But I must confess that I am very new to html5 - anyone else care to weigh in?
05:24
<cardona507>
this might help with your header question: http://boblet.tumblr.com/post/134276674/html5-structure2
05:26
<JonathanNeal>
Yea, I've heard that the <nav> does not need to be in the header, ah that part still confused me just a little.
07:31
<othermaciej>
good evening everyone
07:32
<foolip>
good morning
07:32
<JonathanNeal>
good times all
07:33
<annevk2>
mornings
07:35
<JonathanNeal>
Is this good, or should the nav be inside the header, http://pastebin.com/d50828caa ?
08:51
<hsivonen>
https://bugzilla.mozilla.org/show_bug.cgi?id=253346 is INVALID per HTML5, right?
08:52
<annevk2>
yes
08:53
<hsivonen>
annevk2: ok. WONTFIXed. thanks
08:54
<annevk2>
in theory it's INVALID
08:54
<annevk2>
well, future-yet-to-be-a-real-standard-theory
08:54
<hsivonen>
I'm being generous and marking bugs that are valid per HTML4 as WONTFIX
08:55
othermaciej
hates bugzilla resolutions
08:55
<annevk2>
heh
08:56
<othermaciej>
although I guess INCOMPLETE is new, and an improvement
08:56
<othermaciej>
does REMIND still exist in the latest bugzilla?
08:57
<hsivonen>
othermaciej: IIRC, after a decade or so, it was finally buried
08:59
<hsivonen>
in a way, I'm glad that Netscape engineers didn't have the cycles to "fix" all the SGML stuff in the Netscape 6 cycle
08:59
<othermaciej>
Radar has resolutions including "Software changed", "Feature removed", "Documentation changed", "Duplicate", "Cannot reproduce", "Behaves correctly", "Not to be fixed" and "Insufficient information"
08:59
<othermaciej>
I always hated having to say "INVALID" for what might be either "behaves correctly" or "insufficient information"
09:00
<othermaciej>
it feels like something the Master Control Program from TRON would say, not a human mode of communication
09:01
<annevk2>
spec/docs changed would be a good resolution to have indeed
09:03
<hsivonen>
yesterday I realized that Radar should have a resolution "Confusing UI"
09:04
<hsivonen>
I finally understood what the keyboard identification dialog wanted me to do
09:04
<hsivonen>
I had always misread it.
09:04
<hsivonen>
to the point of even borrowing another keyboard to bypass it
09:05
<hsivonen>
maybe I should follow up with the Radar bug I filed about it for the wrong reason the last time round
09:15
<othermaciej>
hsivonen: "confusing UI" is more a category of bug than a resolution...
09:15
<othermaciej>
specifically the "Usability" classification
09:25
<Hixie>
REMIND and LATER are two resolutions i argued long and hard to drop
09:26
<Hixie>
i'm amused that i use them now in the w3c bugzilla
09:27
<foolip_>
Hixie: if you're still confused about what microdata syntax I am proposing, I'm here.
09:28
<jgraham>
Hixie: Did you see the discussion about microdata formats from yesterday
09:28
<jgraham>
?
09:28
<Hixie>
foolip_: your ideas about nested subitems don't seem to fit the use cases we have for them
09:29
<jgraham>
Specifically about using selectors to select on an item without fully qualified names
09:29
<Hixie>
foolip_: microdata is modelling a nested tree
09:29
<Hixie>
foolip_: lists of name-value pairs that can be nested
09:29
<jgraham>
s/about using/about not beiung able to use/
09:29
<Hixie>
foolip_: so i don't see what an anonymous child would mean, and modelling it compared to the DOM makes no sense, imho
09:29
<Hixie>
jgraham: i did not
09:30
<foolip_>
Hixie: anonymous as in you don't need to give it an itemprop value
09:30
<Hixie>
right, that makes no sense to me
09:30
<Hixie>
it's a name-value pair list
09:30
<Hixie>
the "name" part is integral to what we're modelling
09:31
<Hixie>
look at the vcard vocabulary
09:31
<Hixie>
for instance
09:32
<jgraham>
Hixie: Right so the point was that if you have <span item="com.example"><span itemprop=foo></span><span item="org.example"><span itemprop="foo"></span></span></span>
09:32
<foolip_>
I have looked at it and don't see why named itemprops which are unnamed items is any clearer than just named items
09:32
<Hixie>
the current model is <div itemprop="name" item="type"> <span itemprop="subname"> subvalue </span> </div>
09:32
<Hixie>
dropping the itemprop="name" part is meaningless imho
09:32
<jgraham>
And you want to select org.example.foo but not com.example.foo you can't do it without knowing the structure in advance
09:32
<Hixie>
foolip_: i don't understand what you mean
09:33
<Hixie>
jgraham: org.example.foo?
09:33
<jgraham>
the itemprop foo of type org.example
09:33
jgraham
doesn't remember the right terms
09:34
<Hixie>
jgraham: i can't see a use case where you would want a specific _type_'s subproperty directly like that
09:34
<foolip_>
Hixie: I'm saying that nested name-value lists are more difficult to understand and use than a simple tree
09:35
<foolip_>
it makes the DOM API more confusing
09:35
<jgraham>
Hixie: Well if you want to style all the foo properties of a specific item type, for example
09:35
<Hixie>
foolip_: oh you're suggesting changing the actual underlying data model structure as well??
09:35
<jgraham>
It doesn't seem unreasonable
09:35
<Hixie>
foolip_: i wasn't even considering that
09:36
<foolip_>
Hixie: yes, but it seems a rather minor change
09:36
<Hixie>
jgraham: don't style microdata. it's not intended for use with styling. things will go badly if you start relying on microdata for styling.
09:36
<foolip_>
the syntax is largely the same
09:36
<Hixie>
foolip_: changing an underlying assumption is never a minor change.
09:36
<Hixie>
foolip_: you have to revisit every design decision that was based on the previous assumption and reconsider the decisions to make sure the new design makes sense again.
09:36
<Hixie>
foolip_: so what is the data structure you are suggesting?
09:37
<jgraham>
Hixie: I'm not sure authors will feel the same way
09:37
<foolip_>
Hixie: simply a tree where each node has string properties and subnodes
09:37
<Hixie>
foolip_: that doesn't seem to be a good fit for the use cases we have.
09:37
<jgraham>
Also many JS libraries are heavily selector based and people are likely to try using selectors to access microdata items through js
09:38
<Hixie>
foolip_: and we already have that data model anyway -- the DOM itself
09:38
<Hixie>
foolip_: for example, imagine the microdata for a book, which has four vcards associated with it, two for authors, and two for editors.
09:38
<foolip_>
Hixie: there are no examples where both the itemprop and item would have a type
09:39
<Hixie>
foolip_: how would you express that in your model?
09:39
<Hixie>
itemprop doesn't ever have a type
09:39
<Hixie>
it has a name
09:41
<foolip_>
Hixie: I would make author/editor part of the subitem or I would add intermediary "authors" and "editors" items
09:42
<foolip_>
if someone is both an author and an editor I would do the former
09:42
<Hixie>
could you show the syntax for this?
09:44
<foolip_>
if you'll allow me to use the DOM-isomorphism for brevity: <book><person type="author"/><person type="editor"/></book> or <book><authors><person/></authors><editors>...</editors></book>
09:44
<Hixie>
i can see how to do it in the DOM
09:44
<Hixie>
but how would you do it in your microdata syntax?
09:45
<Hixie>
i think your sample markup shows a misunderstanding, btw. "author" is a type of "person", but "person" is the type of that object.
09:46
<foolip_>
the first case: <span item="book"><span item="person"><span itemprop="type">author</span></span></span>
09:46
<Hixie>
(i don't understand how in your syntax you would say that one "list-of-vcards" is named "authors" and another is named "editors" given that you don't have names for subitems)
09:46
<Hixie>
wait, you're saying that you'd add fields to the vcard vocabulary just to be able to integrate vcard into other vocabularies?
09:47
<foolip_>
you'll have to be more specific, this isn't a vcard example
09:47
<foolip_>
well, we should use <span item="vcard"> instead of person above
09:47
<Hixie>
you'd add fields to the "person" vocabulary just to be able to integrate it into other vocabularies
09:48
<hsivonen>
Hixie: regarding the Google usability study: are you going to test hCalendar vs. vCal-RDF-in-RDFa vs. vCal-in-microdata?
09:48
<hsivonen>
Hixie: for expressing an event
09:48
<Hixie>
hsivonen: no, we don't really have the resources to do any more than just a straight forward comparison of maybe three microdata variants at most
09:48
<hsivonen>
Hixie: ok.
09:50
<Hixie>
anyway i really should go to bed
09:50
<Hixie>
foolip_: i don't think your proposals are sound, to be honest
09:50
<Hixie>
foolip_: i think they confuse "type" and "name" in a way that would seriously compromise the mechanism
09:51
<Hixie>
foolip_: maybe we should drop "type" for subitems, though
09:51
<Hixie>
foolip_: i'll think about it
09:51
<Hixie>
nn
09:51
<foolip_>
Hixie: if you're unwilling to test the syntax I can't force you, of course, I'm saying that the DOM API etc are very confusing now and this seems to help
09:51
<foolip_>
let's see what others say
10:54
<hsivonen>
hmm. 10 billion page views per month through Opera Mini
10:55
hsivonen
wonders if the default search and bookmark placements pay for all that
10:59
<jaket>
does opera use that usage data for anything else
11:52
<ray>
opera is big brother, they use it for everything else
13:26
<hsivonen>
is http://dev.w3.org/2006/waf/widgets-vm/Overview.src.html new stuff or a spec for existing behaviors?
13:26
<hsivonen>
does e.g. Mobile Safari already support the events when the user turns an iPhone sideways?
13:29
<Rik|work>
hsivonen: http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW16
13:31
<hsivonen>
Hixie: should we have onorientationchange as an attribute in HTML5?
13:57
gsnedders|work
throws a dog at Hixie
14:27
<annevk3>
http://www.jenitennison.com/blog/node/124 and comments is quite a good read
14:33
<takkaria>
yeah
14:34
<takkaria>
it's interesting because the author appears to actually like RDFa yet it still saying useful, constructive things
14:36
<jgraham>
I guess there is no special reason that some of the RDFa community behaving in unproductive ways means that no one else from the RDFa community is capable of rational discourse
14:52
<adactio>
I could do with some help with some examples I've made for the outline algorithm. If anybody has five minutes to run a sanity check, 'twould be much appreciated.
14:52
<adactio>
These three document fragments:
14:52
<adactio>
http://pastebin.com/d4e7dca13
14:52
<adactio>
http://pastebin.com/d6a71719d
14:52
<adactio>
http://pastebin.com/d1dfc8ac0
14:52
<adactio>
*should* have the same outline (I believe).
14:52
<adactio>
Can anyone confirm/deny?
14:53
<annevk2>
did you check with the outline checker?
14:54
<adactio>
annevk2: I did not. Where is this outline checker of which you speak?
14:54
<zcorpan>
http://gsnedders.html5.org/outliner/
14:54
<adactio>
Many thanks.
14:54
<zcorpan>
bug gsnedders|work if you want a textarea
14:55
<adactio>
Superb. That worked a treat.
14:55
<adactio>
Great resource.
14:58
gsnedders|work
grumbles
14:58
<gsnedders|work>
That's the fourth time or so today people have said to bug me for new features in public web services…
14:58
<jgraham>
gsnedders|work: I asked for a textarea months ago
14:58
<gsnedders|work>
jgraham: So did zcorpan, and he did it first.
14:59
<jgraham>
You can't claim you don't have time whilst simultanously wanting to play minigolf
14:59
<gsnedders|work>
Obviously, you can tell from the fact I haven't done it that I don't like zcorpan
14:59
<gsnedders|work>
jgraham: But minigolf is more fun than sitting around coding, and I can pretend to like zcorpan then :P
15:01
jgraham
is reasonably sure that gsnedders|work is overestimating the amusment of trying to get a small ball into a distant hole that is situatued atop a minature windmill
15:01
<gsnedders|work>
jgraham: You obviously haven't been to the Himalayas!
15:02
<jgraham>
?
15:03
<gsnedders|work>
jgraham: http://www.flickr.com/photos/erase/1270935046/
15:04
<gsnedders|work>
http://www.flickr.com/photos/29781620@N00/3061425628/
15:06
<jcranmer>
on those kinds of courses
15:06
<jcranmer>
I prefer the strong powerful lob
15:07
<jcranmer>
the last time I played minigolf, my ball flew out of the course, hit a lamppost, and landed in the green right next to the hole
15:07
<jcranmer>
I wondered whether or not that should be considered an out-of-bounds penalty
15:07
<jcranmer>
as it didn't *stop* out of bounds
15:07
<gsnedders|work>
Well, from memory, it is only where it comes to rest that matters
15:08
<gsnedders|work>
(YMMV, I'm only a guy from St Andrews)
18:38
<dbaron>
_sheriff
20:45
<hallvors>
who broke the wonderful http://www.whatwg.org/HTML5 shortcut? :-p
20:45
<hallvors>
..or did I just make it up?
20:45
<gsnedders>
hallvors: Lowercase html5
20:47
<Dashiva>
And you can skip the www. for a shortercut
20:48
<gsnedders>
And most browsers let you omit the http://
20:49
<hallvors>
LOL. thanks, gsnedders. the site added www and the browser added http:// indeed
20:49
<hallvors>
(looking at the textarea maxlength issue btw)
20:50
<gsnedders>
Ah
20:50
<gsnedders>
hallvors: I dunno if there are still sites broken by that, as the one in the URL field had gone when I tried it earlier.
20:50
<hallvors>
it's funny how jQuery.validate explicitly detects some presumably bogus values
20:50
<gsnedders>
jQuery.validate works now
20:51
<hallvors>
hm, IRC isn't JavaScript-friendly..
20:51
<hallvors>
maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs
20:51
<hallvors>
it says
20:51
<gsnedders>
Yeah, I saw
20:51
<gsnedders>
We return -1
20:52
<gsnedders>
Which is interesting, as I'd expect it is undefined
20:52
<gsnedders>
(whereas maxLength is 0)
20:52
<annevk3>
they support maxlength in addition to maxLength?
20:52
<gsnedders>
No, they only use maxlength now
20:53
<gsnedders>
They used to use maxLength, which breaks Opera 9+
20:53
<annevk3>
I was replying to what hallvors was suggesting
20:53
<annevk3>
if it returns something in those browsers...
20:53
<gsnedders>
I don't think it's that simple :)
20:57
<hallvors>
as far as I can see, the spec doesn't say what the browser should return for element.maxLength if there is no maxlength attribute
20:57
<gsnedders>
hallvors: 0
20:58
<gsnedders>
hallvors: Follow xref for 'reflects'
20:58
<gsnedders>
(This is one horrible bit of how HTML5 is spec'd)
20:58
<hallvors>
it also doesn't say what the implementation should do if the value attribute contains too many characters (more than maxlength allows) - or?
20:59
<hallvors>
gsnedders: thanks but I don't even find the "reflects" link . Looking here: http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#the-maxlength-attribute
20:59
gsnedders
hopes he doesn't hit the crashing bug
21:00
<gsnedders>
hallvors: That's the HTML attribute
21:01
<gsnedders>
hallvors: You want #dom-textarea-maxlength
21:01
<gsnedders>
hallvors: And that's the dfn for input anyway
21:02
<gsnedders>
hallvors: "…if the attribute is absent, the default value must be returned instead, or 0 if there is no default value."
21:03
<hallvors>
found it now, thanks. Also found the fix in jQuery's code I think.
21:04
<gsnedders>
hallvors: jQuery.validate gets maxlength from DOM not maxLength (note case)
21:04
<hallvors>
gsnedders: you could be a bit more detailed in your BTS comments :)
21:04
<gsnedders>
Did I not explain this all, just concisely? :P
21:05
<gsnedders>
(Which issue is it anyway?)
21:05
<hallvors>
CORE-23563
21:06
<hallvors>
and I think the spec should make the default return value for maxLength -1 when the attribute isn't specified
21:06
<gsnedders>
If it changes, it'd need to change for all things using unsigned long
21:06
<hallvors>
otherwise we break all sites using jQuery.validate 1.3
21:07
<hallvors>
why can't it just be added as a special case in #dom-textarea-maxlength rather than it pointing to reflect?
21:07
<gsnedders>
hallvors: If seems ugly to change it in one place
21:07
<gsnedders>
hallvors: http://www.theplace.org.uk/codelib/js/jquery/jquery.validate.js uses maxLength and maxlength, the maxLength case is gone now
21:07
<hallvors>
gsnedders: compatibility is all about being ugly :-o
21:08
<gsnedders>
hallvors: I want to try and get an idea of how much breaks with it as zero, if it's one site…
21:08
<annevk2>
or generalizing things into a new datatype :-o
21:08
<hallvors>
if we follow the spec, we'll have to do it for <input>.maxLength too
21:08
<gsnedders>
I mean, we've been shipping it since Opera 9, and AFAIK that's the only site we ever got the issue reported on
21:09
<othermaciej>
h everybody
21:09
<hallvors>
so it would break on all <input> validation too
21:09
<annevk2>
hey othermaciej
21:10
<hallvors>
even a few sites using 1.3 (+ other versions?) would cause some trouble there
21:10
<annevk2>
hallvors, so when the attribute is not specified you want it to return -1 rather than 0?
21:10
<annevk2>
hallvors, and this is what other browsers are already doing?
21:10
<gsnedders>
annevk2: Nothing else already does. Only we support WF2, remember? :P
21:11
<gsnedders>
annevk2: (They all return undefined, therefore)
21:11
<hallvors>
annevk2: exactly. We're still shipping <input>.maxLength = -1, seems to be the default for other browsers too. textarea.maxLength should be consistent
21:11
<annevk2>
I thought we were talking about <input>.maxLength as well gsnedders
21:11
<gsnedders>
Is that not WF2?
21:11
<annevk2>
no
21:11
<gsnedders>
Oh, duh, true
21:11
gsnedders
is half asleep
21:12
<annevk2>
well me too, but I'm right :p
21:13
<othermaciej>
hi annevk2
21:13
<gsnedders>
Hmm, spec says input.maxLength should give 0, I guess if everything gives -1 the spec needs changing
21:13
<gsnedders>
And then it'd be nice for textarea.maxLength to be consistent with that
21:13
<hallvors>
Certainly. Changing <input>.maxLength to 0 by default might break stuff.
21:13
<gsnedders>
It will, almost certainly
21:13
<hallvors>
- *will* break jQuery.validate version 1.3
21:14
<gsnedders>
Because there's far more deployed content using input.maxLength than textarea.maxLength
21:14
<annevk2>
so Opera and Firefox are -1
21:14
<annevk2>
WebKit defaults to maxvalue
21:14
<annevk2>
I'll file a bug on HTML5
21:14
<hallvors>
(I need a quick course in how the HTML5 spec is structured by the way #-) )
21:14
<gsnedders>
hallvors: That's a dark art :)
21:14
<hallvors>
it keeps confusing me :-p
21:15
<annevk2>
hallvors, maybe I should do one of those for QA when I'm in Oslo...
21:15
<gsnedders>
Or maybe Engineering Seminar?
21:15
hallvors
thinks Google should pay Hixie for hitting the road with a spec-reading course
21:16
<jgraham>
Maybe Hixie should give "Enterprise" spec-reading courses and charge $1500+ per person
21:19
<annevk2>
hallvors, http://www.w3.org/Bugs/Public/show_bug.cgi?id=7427
21:20
<hallvors>
Thanks Anne :)
21:51
annevk2
takes some time to read http://blog.foolip.org/2009/08/23/microformats-vs-rdfa-vs-microdata/ (finally...)
21:56
<Dashiva>
"Following James Graham’s suggestion, I have registered mantic.se for fun reverse DNS identifiers like se.mantic.banana. Mostly for fun, don’t take it too seriously…"
21:56
<Dashiva>
Darn, I'm too late
22:06
<foolip>
Dashiva: hehe, there will be others
22:06
<foolip>
plus I'll give it to you if you find a use for it
22:07
<annevk2>
ne.an is apparently too hard to get and might be expired in 2010 :)
22:08
<foolip>
with the microdata2 proposal hidden in SVN it looks like short names won't be THAT important anyway
22:08
<Dashiva>
Haiti!
22:08
<foolip>
but fun domain names are still fun :)
22:09
<Dashiva>
foolip: Well, that proposal seems to be flirting with prefixes
22:10
<foolip>
some kind of namespaces or scoping anyway
22:10
<foolip>
no prefix though, more like a C++ using statement
22:11
<foolip>
or the with keyword in visual basic (I think)
22:11
<Dashiva>
Yeah
22:17
<annevk2>
can someone pm me the password (again) for @whatwg?
22:26
<Dashiva>
Did someone run the topic through translationparty?
22:30
<annevk2>
yes
22:31
<TabAtkins>
Actually through translationparty?
22:31
<TabAtkins>
http://www.translationparty.com/#3406620
22:31
<annevk2>
yes
22:31
<Dashiva>
You could use translationparty as a hash function
22:32
<paulirish>
"Google recently improved their translation service. That's great news for people who need to translate something accurately, but bad news for hilariousness. Rest assured, we're looking into alternative methods for mangling language."
22:32
<Dashiva>
It's one-way most of the time
22:32
<TabAtkins>
Heehee
22:34
<TabAtkins>
Google has recently been translated into service improvements. To translate all the bad news is good news for people Hilariousness. Security second one language, and other qualifications.
22:36
<jcranmer>
http://www.translationparty.com/#3407079
22:36
<jcranmer>
damn it
22:37
<jcranmer>
"Wikipedia is God" no long equilibriums at something like "God is not Wikipedia"
22:38
<TabAtkins>
I need to go install a japanese font so I can actually view the text rather than just little unicode boxes.
22:39
<jcranmer>
"Sir, I would like to inform you that your credit card is no longer valid." manages to drop the `no longer' part
22:39
<jcranmer>
ooh, infinite loop!
22:42
<TabAtkins>
Yeah, the translation I posted above was infinite-looping with "for" and "to" swapping each time.
23:01
<hallvors>
fun site. wonder why they use just English-Japanese-English though.
23:04
<Dashiva>
hallvors: Maximum confusion
23:15
<Hixie>
so... standards suck interviews accessibility people, accessibility people even ReTweet the announcement, and nobody complains about lack of transcripts?
23:21
<annevk3>
Steve Faulkner published a transcript on his blog when we interviewed him, hopefully Bruce Lawson does the same
23:30
<Hixie>
i think roy and i live on different planets
23:30
<Hixie>
or we speak a different language
23:30
<Hixie>
or something
23:30
<Hixie>
i so utterly don't understand what he's saying
23:31
<Hixie>
of course he refuses to explain himself
23:31
<Hixie>
so...
23:35
<othermaciej>
Hixie: I did not find his link to the dictionary edifying
23:35
<TabAtkins>
Damn, maciej beat me to it. I was just drafting a nearly identical response.
23:37
<Hixie>
well my position is that a prerequisite for me to respond to roy's feedback be that i understand wtf he's talking about, but he refuses to continue responding to the thread in which we were making progress towards me understanding that
23:38
<vvv>
Is there support of ARGB in HTML 5?
23:38
<Hixie>
what do you mean by ARGB?
23:39
<vvv>
RGB with an alpha channel
23:40
<Hixie>
<canvas> supports RGBA, yes
23:40
<vvv>
And <input type=color>?
23:42
<TabAtkins>
That's UA-specific, I believe.
23:46
<vvv>
Spec says it's "simple color". Is there a reason why there can't be an "alpha" attribute to specify whether alpha channel is needed?
23:48
<Lachy_>
vvv, alpha channel can be specified with a separate control, if it's needed
23:48
<vvv>
Lachy_: then it would be impossible to include it in color well
23:50
<Hixie>
vvv: no, <input type=color> doesn't do alpha currently
23:50
<Hixie>
vvv: maybe in a future version
23:51
<vvv>
Where should I post a request?
23:53
<Lachy>
vvv, whatwg⊙wo or public-html⊙wo
23:53
<vvv>
Thanks
23:56
<Lachy>
vvv, which applications are you aware of that include an alpha channel in the same control as the colour picker?
23:56
<vvv>
Lachy: GTK has such feature
23:57
<Lachy>
any windows or mac apps?
23:57
<vvv>
Haven't seen such thing in Windows
23:57
<Lachy>
or can you find a screenshot of such a control somewhere and post a link?
23:59
<Lachy>
vvv, if common native apps rarely, if ever, include an alpha channel in the colour picker, I'm trying to understand why a web app would need to?