00:10:09 tobie has joined #css 02:26:22 trackbot has joined #css 02:32:13 jdaggett has joined #css 04:28:59 dbaron has joined #css 04:47:25 krit has joined #css 06:09:42 nvdbleek has joined #css 06:29:24 teoli has joined #css 06:42:32 tobie has joined #css 06:47:59 Ms2ger has joined #css 07:18:05 zcorpan has joined #css 07:38:47 nvdbleek has joined #css 08:36:08 antonp has joined #css 08:57:13 antonp has joined #css 09:03:25 teoli has joined #css 09:44:30 zcorpan has joined #css 09:51:28 zcorpan has joined #css 11:16:42 zcorpan has joined #css 11:17:06 darktears has joined #css 11:19:46 krit1 has joined #css 11:27:48 teoli has joined #css 11:43:49 tobie has joined #css 12:01:59 nvdbleek has joined #css 12:52:54 <{Darktears}> {Darktears} has joined #css 13:06:34 zcorpan has joined #css 13:44:31 antonp1 has joined #css 13:57:10 antonp has joined #css 14:00:20 antonp1 has joined #css 14:07:46 antonp has joined #css 14:08:45 antonp1 has joined #css 14:21:58 antonp has joined #css 14:54:32 teoli_ has joined #css 14:57:50 jdaggett has joined #css 15:38:29 rhauck has joined #css 15:48:22 antonp has joined #css 15:51:18 Zakim has joined #css 15:53:42 rhauck1 has joined #css 15:54:25 rrsagent, make logs public 15:54:42 rrsagent, pointer? 15:54:42 See http://www.w3.org/2013/08/14-css-irc#T15-54-42 15:55:19 plinss has changed the topic to: http://lists.w3.org/Archives/Public/www-style/2013Aug/0198.html 15:56:06 zakim, this is style 15:56:06 ok, plinss; that matches Style_CSS FP()12:00PM 15:59:11 stearns has joined #css 15:59:34 +krit 15:59:48 dbaron has joined #css 16:00:01 +Stearns 16:00:24 +??P10 16:00:27 Zakim, ??P10 is me 16:00:27 +SimonSapin; got it 16:00:28 +antonp 16:00:45 +dbaron 16:00:47 -Stearns 16:01:17 smfr has joined #css 16:01:41 oyvind has joined #css 16:02:14 +Stearns 16:02:24 +smfr 16:02:45 TabAtkins: should we just publish Syntax? The remaining issues seem minor 16:02:54 +TabAtkins 16:03:03 +[Microsoft] 16:03:07 SimonSapin: I'm down with this. 16:03:13 Let's see if we can get a resolution today. 16:03:20 JohnJansen has joined #CSS 16:03:28 Zakim, Microsoft has JohnJansen 16:03:28 +JohnJansen; got it 16:03:30 Or maybe we already did? Let me go check the f2f minutes. 16:03:50 florian has joined #css 16:03:53 c_palmer has joined #css 16:04:00 AFAIR we were waiting on dbaron’s feedback, which he gave 16:04:02 +fantasai 16:04:04 +[Apple] 16:04:09 Zakim, Apple has me 16:04:09 +hober; got it 16:04:16 +Bert 16:04:34 Oh, and we were waiting for the "CSS Stylesheets" section. 16:04:39 Rossen has joined #css 16:04:43 +shezbaig_wk 16:04:52 ChrisL has joined #css 16:05:20 Zakim, shezbaig_wk is me 16:05:20 +c_palmer; got it 16:05:23 ScribeNick: TabAtkins 16:05:29 +??P18 16:05:36 +[Microsoft.a] 16:05:44 Zakim, I am ??P18 16:05:44 +florian; got it 16:06:03 Topic: Folks showing up at TPAC? 16:06:04 + +98136aaaa 16:06:12 plinss: sylvaing wanted to know who was showing up at TPAC. 16:06:15 zakim, aa is me 16:06:15 sorry, ChrisL, I do not recognize a party named 'aa' 16:06:20 plinss: There's a wiki page for this already. 16:06:30 http://wiki.csswg.org/planning/tpac-2013 16:06:35 zakim, +98 is me 16:06:35 +ChrisL; got it 16:06:42 fantasai: Are we doing a Sunday meeting day? 16:06:52 plinss: Not known yet - need to find out if we can get the space. 16:06:57 fantasai: Are we wanting to? 16:07:12 zakim, microsoft has me 16:07:12 +Rossen; got it 16:07:16 Bert: When is the TTWF event? Sat or Sun? 16:07:21 fantasai: Saturday. 16:07:51 plinss: Opinions on meeting the extra day? 16:07:51 cabanier has joined #css 16:07:56 florian: It's usually useful. 16:07:57 tantek has joined #css 16:08:01 Rossen: Should be fine. 16:08:19 plinss: Okay, I'll see if we can get the room. 16:08:33 plinss: If the organizers can't find space, is there anyone with resources in that area? 16:08:45 plinss: I'll take that as a no. 16:08:53 Topic: LC period for Counter Styles 16:09:05 plinss: LC period is expiring for Counter Styles. Where we at? 16:09:14 +SteveZ 16:09:18 TabAtkins: I can get up the DoC this week. 16:09:21 plinss: Any feedback? 16:09:28 TabAtkins: Not really, just from r12a. 16:09:33 Topic: CSS surrogate 16:09:59 SimonSapin: When you have a hex CSS escape, we turn that into the corresponding codepoint. 16:10:19 SimonSapin: We currently have a special case for 0 because we want to avoid NUL characters, so it's replaced by the replacement char. 16:10:27 MaRakow has joined #CSS 16:10:30 SimonSapin: Something else that's problematic is surrogate codepoints, which are used for utf-16. 16:10:40 SimonSapin: These characters are not used outside of utf-16. 16:10:45 surrogates are not characters 16:11:07 SimonSapin: If you have two escape sequences for surrogates next to each other, impls will interpret those as a single codepoint (whatever they mean). 16:11:09 teoli has joined #css 16:11:13 SimonSapin: This is the wrong thing to do. 16:11:14 assuming we have a proper definition for characters, like unicode codepoint and not, say, grapheme cluster 16:11:26 SimonSapin: So suggestion is to use replacement char for surrogate escapes as well. 16:11:36 ChrisL: Why is that wrong? 16:11:45 SimonSapin: Because you already have a mechanism for inputting high codepoints. 16:12:04 SimonSapin: The fact that two surrogates produce a character is a feature of UTF-16, not unicode. 16:12:08 ChrisL has joined #css 16:12:09 +[Microsoft.aa] 16:12:13 ChrisL: I agree. 16:12:29 zakim, [Microsoft.aa] is me 16:12:29 +MaRakow; got it 16:12:41 ChrisL: This ties into the other thread, which talks about how "character" and "codepoint". 16:13:01 TabAtkins: Someone from Moz said they'd be okay with making this change, and I think we'd be fine on Blink too, so I'm okay with this change. 16:13:25 RESOLVED: CSS escapes for surrogates produce u+fffd instead. 16:13:27 ok so this is not really about surrogate escapes. its about 'half surrogates' 16:13:29 bradk has joined #css 16:13:36 SimonSapin: In Syntax, we use the word "character", which isn't precisely defined. 16:13:40 SimonSapin: We mean codepoints. 16:13:52 SimonSapin: What we could do is use the word "codepoints", and avoid the word "character". 16:14:04 SimonSapin: Or we coudl define in the beginning that for this spec, the word "character" means "codepoints". 16:14:18 SimonSapin: CSS Text already does something similar, where "character" means "grapheme cluster". 16:14:27 not hearing you florian 16:14:30 florian: We've had problems with that. Using "characters" is more elegant, but it's less clear. 16:14:35 Regrets that I'm not really here. In a disaster recovery meeting that I forgot about until now. 16:14:42 might be on my end… 16:14:46 ChrisL: The real problem is that CSS Text defines "connector" as something wrong. 16:15:01 israelh has joined #CSS 16:15:03 s/connector/character/ 16:15:17 ChrisL: Gives us problems elsewhere. 16:15:25 fantasai: "character" is ambiguous in English. 16:15:47 ChrisL: I don't care about English, I care about what technical specs have worked out for "character" to mean. 16:16:22 ChrisL: And what the unicode consortium has defined for it. 16:16:32 TabAtkins: I'm fine with just saying "codepoint" everywhere in Syntax. 16:16:38 s/English/English in all its varied uses/ 16:16:47 dbaron: I think part of the reason CSS Text did what it did was to make the spec readable. 16:16:52 ChrisL: But it doesn't, that's the problem. 16:16:57 Unicode has 4 different definitions of "character" 16:17:04 one of which is "abstract character" 16:17:09 ChrisL: If you redefine an ambiguous term differently in multiple specs, it's hard to combine them when reading. 16:17:29 fantasai: We got feedback that "grapheme cluster" is confusing and hard to read, which is why I used "character". 16:17:42 ChrisL: I understand that, but it still ends up with a different definition. 16:17:51 dbaron: I think the solution is to use hyperlinks. 16:18:02 ChrisL: That helps. 16:18:14 ChrisL: But people ahve multiple specs open, they look at things and combine stuff, etc. 16:18:39 ChrisL: It's a problem if they see the same word in two specs that mean different things. 16:19:07 -SimonSapin 16:19:10 plinss: So if Text doesn't use "character", what should it use? 16:19:28 ChrisL: A different term that's easier than "grapheme cluster". Maybe "cluster" or something. 16:19:29 +??P0 16:19:36 Zakim, ??P0 is me 16:19:36 +SimonSapin; got it 16:19:40 ChrisL: And the parsing spec uses "character" to mean what it means in unicode. 16:19:43 "user-perceived characters" 16:19:56 http://www.unicode.org/reports/tr29/#Introduction 16:20:11 ChrisL, so what’s a character? 16:20:11 fantasai: That's what the definition of "grapheme cluster" is based on. 16:20:22 I agree that not using the word character the way it is currently used in css text makes for awkward sentences, but I think I'd take that over technical confusion due to inconsistent use of the word 16:20:32 ChrisL: I guess we can talk about that at the meeting. 16:20:42 It is important to recognize that what the user thinks of as a "character"—a basic unit of a writing system for a language—may not be just a single Unicode code point. Instead, that basic unit may be made up of multiple Unicode code points. To avoid ambiguity with the computer use of the term character, this is called a user-perceived character. 16:20:52 -- http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries 16:21:13 [stuff] 16:21:56 TabAtkins: Could we move the Text bikeshedding to the mailing lilst. 16:22:00 ChrisL: Sure. 16:22:36 ChrisL: So is a half-surrogate a codepoint? 16:23:12 TabAtkins: Yes. But in some places, if we receive those codepoints we won't emit them. 16:23:30 SimonSapin: You can still get some bad codepoints via the OM. 16:23:39 SimonSapin: By setting a JS string. 16:24:21 RESOLVED: Switch Syntax to using the term "codepoint". 16:24:45 and "codepoint" will be hyperlinked to some unicode-referenced definition? 16:25:09 text issue on character : http://lists.w3.org/Archives/Public/www-style/2013Jul/0702.html 16:25:25 SimonSapin: After these changes, can we publish Syntax? 16:25:41 plinss: What level? 16:25:52 TabAtkins: We haven't published our first WD yet. 16:26:10 dbaron: Technically we already have a WD for Syntax. 16:26:36 TabAtkins: Yeah, but in practice it's just a spec with the same name. 16:26:52 TabAtkins: I'm fine as publishing either as WD or FPWD, based on what W3M says. 16:26:53 I think I said I was happy with publishing a few months ago. 16:27:06 RESOLVED: Publish Syntax as WD or FPWD, depending. 16:27:08 um, if it was published with the same name and same patent policy then its a previous fpwd surely 16:27:26 Topic: grid auto-flow 16:27:55 Rossen: I think we needed to revisit was about you, Tab. 16:28:05 Rossen: We wanted to have grid-auto-flow to be sparse. 16:28:13 ChrisL, we did the Great Renaming so it’s css-syntax-3 now, but css3-syntax should redirect to it 16:28:21 Rossen: The current spec describes a sparse model, and our impl does it. 16:28:36 Rossen: The couple of ideas that were floating around were: 16:28:52 Rossen: Stick with the sparse model, and then if there's demand from impls or apps for the dense model, enable it through some switch. 16:29:14 yeah I think new shortnames is orthogonal there 16:29:30 TabAtkins: That's exactly what I want. 16:30:02 Rossen: Any particular reason why you wanted the dense model? 16:30:58 TabAtkins: I know that there are JS libraries that do dense packing, and cite dense-ness as a benefit over other sparse packings. 16:31:42 Rossen: A use-case I can think of is, say, an image page that just wants lots of images up without holes. 16:32:33 Tab: It's really simple to implement; you just reset the grid cursor after ???. 16:32:43 s/???/each auto placement/ 16:32:47 Rossen, Stearns: It's one way of doing dense packing. 16:32:51 ChrisL has joined #css 16:32:51 Rossen: I'm okay with that. 16:33:00 ok by me 16:33:17 ChrisL has joined #css 16:33:26 TabAtkins: Naming ideas? grid-auto-flow-type? -strategy? -pack? -packing? 16:33:37 ChrisL has joined #css 16:34:19 Rossen: Why not just throw it into the value of grid-auto-flow? 16:34:23 TabAtkins: Ah, I guess that's okay. 16:35:14 RESOLVED: Add a dense/sparse keyword to grid-auto-flow, defaulting to sparse. 16:35:44 Topic: abspos 16:35:54 -[Microsoft] 16:36:07 fantasai: I wanted to see where impls were at in abspos-in-flexbox, and see if we wanted to stick with that. Also, cross-check with Grid and see what it's doing. 16:36:15 fantasai: Because we want flexbox and grid to be consistent when possible. 16:36:30 fantasai: If their behaviors are different, maybe switch one to the other's behavior. 16:36:42 florian: This sounds like a f2f topic? 16:36:52 Rossen: Or maybe before that - start in the list for technical details. 16:37:41 SteveZ has joined #css 16:37:43 plinss: Rossen, in Tokyo you talked about doing a small grid meetup? 16:38:00 Rossen: I think we discussed that. We had a round of discussion where we resolved a bunch of things. 16:38:38 Rossen: Do we need to make something official? Or are you just getting a sense of where we are? 16:38:42 plinss: The latter. 16:38:54 plinss: If there's some group of people we need to get together before Paris. 16:39:07 Rossen: Yeah, at least a conference call. 16:39:23 Topic: Text LC? 16:39:31 plinss: Are we in a palce to make progress on Text issues? 16:39:38 fantasai: I think mainly waiting for Bert right now. 16:39:45 ChrisL has joined #css 16:39:53 fantasai: The last time we discussed I think we had mostly consensus on the letter-spacing change, but Bert wasn't happy with it. 16:40:07 fantasai: Bert's responded this morning, but I haven't had a chance to respond back. 16:40:17 fantasai: There's also the text-align proposal. 16:40:27 fantasai: About text-align and text-align-last properties. 16:40:28 grid 16:40:29 (terminology question: U+005F is a "code point" (not codepoint) and hex 5F is its "number"?) 16:40:40 grid 16:40:41 ChrisL has joined #css 16:41:06 http://wiki.csswg.org/topics/text-align-last-shorthand 16:41:17 http://lists.w3.org/Archives/Public/www-style/2013Jun/0263.html 16:41:40 fantasai: One way to deal with it is to make text-align a shorthand that resets text-align-last. 16:41:49 fantasai: This also lets us make it easier to set common combinations. 16:42:05 fantasai: Another way is to do what IE does, where text-align-last only has effect if text-align:justify. 16:42:12 fantasai: That solves it in some cases, but not others. 16:42:25 fantasai: I think the shorthand approach is easiest for authors, and it *looks* like it should be a shorthand. 16:42:47 q- http://wiki.csswg.org/topics/text-align-last-short 16:42:58 SteveZ: If I set text-align:justify, it does what the latin solution is. I'd need text-align:distribute to get the japanese behavior, correct? 16:43:18 fantasai: distribute vs auto for text-justify determines the realtive priority of gaps between letters and cjk characters. 16:43:31 ChrisL has joined #css 16:43:35 fantasai: In auto, you don't put spaces between latin letters, and do between cjk. "distribute" puts spaces in all of them. 16:43:49 s/text-align:distribute/text-justify:distribute/ 16:44:04 fantasai: You'd say: "text-align:justify-all; text-justify:distribute;" 16:45:14 fantasai: text-align-last:auto means "use whatever text-align says to use", and "text-align:justify" and "text-justify:distribute", then text-align-last defaults to "justify"; otherwise, it defautls to "start". 16:45:36 fantasai: Because when the distribute style is used, it's usually used in combination with justifying all lines. 16:45:42 fantasai: So we special-cased that to make it easier. 16:46:05 SteveZ: There was something about Bert's 15-values proposal that I kinda linked. 16:46:26 SteveZ: There were first, middle, and last lines. Right now text-align only covers first/middle and last. 16:46:39 SteveZ: Bert was saying there's another case for the middle lines specifically. 16:47:01 SteveZ: There's an application in poetry for that one, where you left-justify the first and right-justify the remainder. 16:47:24 stearns: If you set it up to specify first/last/other in that order, and default behavior appropriately, you can get a lot of Bert's combos relatively simply. 16:47:33 s/stearns/SteveZ/ 16:47:51 fantasai: Right - I think independent values combined together is the right way to do that. 16:48:07 fantasai: And we could shorthand it later - text-align-first/last/other? 16:48:20 SteveZ: That's why I thought going the shorthand route was a good way to go. 16:48:40 Bert: Problem with using multiple keywords is that using two keywords isn't very clear. 16:48:58 Bert: "justify center" means, I guess, everything is justified but the last is centered... 16:49:06 Bert: I used single keywords to avoid inconsistency. 16:49:29 fantasai: Right. I think if we did multiple keywords, say that 2 of them cover first/middle and last. 16:49:42 fantasai: And have some new keywords for targetting only first. 16:49:57 SteveZ: or my suggestion is that the middle lines are aligned as the first, unless you specify the third one. 16:50:21 Bert: You still have the problem of single-line paragraphs - is that first or last line? 16:50:42 fantasai: I think first line wins over last, and last wins over "other". 16:50:46 florian: Doesn't seem too bad. 16:50:51 -c_palmer 16:51:05 fantasai: So everyone who's spoken so far seems to think the shorthand makes sense, and we need some list discussion for details. 16:51:15 fantasai: Does anyone have a different opinion? 16:51:28 Is this a new feature for level 3? 16:51:30 Bert: I think shorthand is okay. If we can avoid ahving three properties, even better. 16:51:43 fantasai: Because of existing content for text-align-last, we need to support that property. 16:51:59 fantasai: We can change the interaction of the two properties because of how content usually orders the properties. 16:52:09 TabAtkins: They order it as if it's a shorthand already. 16:52:35 fantasai: I think that on the list we should get an idea of where we're going, and then ahve the first-line adjustment in level 4. 16:52:41 fantasai: Keep level 3 with the current feature set. 16:52:47 florian: But have it forwards-compatible with what we want. 16:53:02 fantasai: Rossen, that okay with you? 16:53:06 Rossen: Yeah, I mean... 16:53:24 Rossen: I think there's no strong objection on our end. 16:53:37 Rossen: Our results last time we talked about this were fairly minimal in adoption. 16:53:38 I don't have a strong opinion; it feels odd to introduce half a model, but I'd also rather see this spec move forward. 16:53:58 Rossen: I dont' think the Word guys are using the combo of properties that we feared they might be using. 16:54:20 Rossen: I'm not sure what it will mean for us to support the legacy behavior. 16:54:30 fantasai: Based on the usage data we've seen, the content will keep working with this change. 16:54:46 fantasai: It's only if you do text-align-last first, followed by text-align, that you'll see a behavior change, and we dont' see people doing that. 16:55:00 SteveZ: Maybe a warning in level 3 about this behavior change? 16:55:02 fantasai: Sure. 16:55:40 Rossen: I'd prefer to see the syntax before resolving. 16:55:42 fantasai: k 16:55:49 Topic: font load events 16:56:41 TabAtkins: We (blink) want to imlpement font load events, but the spec hasnt' been updated to reflect tokyo consensus. Can I take over? 16:56:49 RESOLVED: Add Tab as editor to Font Load Events. 16:56:58 Topic: canonical order for shorthands 16:57:15 ScribeNick: fantasai 16:57:29 TabAtkins: For CSSOM, when expanding shorthands, we need to know order in which they are serialized 16:57:36 TabAtkins: For many shorthands, it's obvious 16:57:41 TabAtkins: For others, like 'border', it's complex 16:58:25 TabAtkins: We're thinking of using the 'Canonical Order' line for serializing values to also specify order of longhands 16:58:36 dbaron: What do you mean by ...? 16:58:53 TabAtkins: If you tweak something such that no longer can represent as a shorthand, need to convert to longhand 16:59:06 dbaron: But shorthands still need the current meaning of Canonical Order 16:59:17 dbaron: It currently controls how you serialize a single property value 16:59:23 dbaron: In this case, the property value of the shorthand 16:59:46 dbaron: e.g. specifies that 'border' is expanded as 'medium solid green', not 'green medium solid' 16:59:53 dbaron: You still need that info for shorthands 17:00:21 dbaron: Are you saying that we stick both types of info in the same line/ 17:00:30 florian: Think he's saying that they're both the same 17:01:00 -MaRakow 17:01:03 dbaron: I think you should do research -- I don't want people going to change existing interop for the convenience of spec authors. 17:01:05 dbaron: Ok, but need to check, if we have interop on something else, need to make sure we aren't changing the spec from that 17:01:13 -smfr 17:01:15 -[Apple] 17:01:15 -SteveZ 17:01:16 -dbaron 17:01:16 -TabAtkins 17:01:17 -antonp 17:01:18 -Stearns 17:01:19 -[Microsoft.a] 17:01:19 -florian 17:01:20 -fantasai 17:01:20 -SimonSapin 17:01:21 -Bert 17:01:21 -plinss 17:01:23 Meeting closed. 17:01:36 TabAtkins, I’m starting the character->code point changes in Syntax 17:01:49 SimonSapin: Okay, I won't fiddle with the spec for a few minutes. ^_^ 17:02:00 hehe 17:02:08 ChrisL has joined #css 17:03:08 ChrisL has joined #css 17:09:40 TabAtkins, SteveZ, what part of Unicode should I refer to to define code point? 17:15:56 -ChrisL 17:16:29 -krit 17:16:31 Style_CSS FP()12:00PM has ended 17:16:31 Attendees were plinss, krit, Stearns, SimonSapin, antonp, dbaron, smfr, TabAtkins, JohnJansen, fantasai, hober, Bert, c_palmer, [Microsoft], florian, +98136aaaa, ChrisL, Rossen, 17:16:31 ... SteveZ, MaRakow 17:19:34 rhauck has joined #css 17:27:53 TabAtkins: https://dvcs.w3.org/hg/csswg/rev/d945246d2184 17:38:48 SimonSapin: Looks good. 17:39:04 By the way, since no one came up with a better name, I'm naming the processor "Bikeshed" 17:39:49 TabAtkins: cool :) 17:40:17 TabAtkins: also, please make it run spec processing when run without arguments 17:40:36 SimonSapin: I want to, but argparse currently doesn't allow optional subparsers. 17:40:39 It's an open issue. 17:40:45 I'm unhappy about it. 17:40:56 I recommend making an alias. 17:43:14 As soon as they update, I'll fix. 17:43:32 they being argparse? I wouldn’t count on it 17:43:40 Yeah. :/ 17:43:58 but a `if len(sys.argv) == 1` special case should be doable 17:44:01 Alternatively, I could manually touch argv and see if the first arg is a recognized subparser. 17:44:02 Yeah. 17:48:48 PR’d 17:50:08 Hah, I just pushed the commit anyway. 18:01:03 TabAtkins: sigh. Can we ignore validation warnings for publication? http://validator.w3.org/check?uri=http://dev.w3.org/csswg/css-syntax/ 18:01:33 Also I have no idea what "Element link is missing required attribute property." means 18:02:21 ...me neither. 18:02:25 And yes, you can ignore warnings. 18:02:34 I wonder what the NFC for that character is? 18:03:16 〈〉 18:03:25 according to Python’s unicodedata.normalize 18:04:13 which is not the same glyph on this machine 18:06:43 Yeah, it's slightly different (and uglier) on my machine as well. 18:23:54 SimonSapin: Yo, your CSSSelect is a little broken. 18:24:05 It seems to not be selecting elements when I have a selector for "a". 18:31:55 nvdbleek has joined #css 19:11:23 teoli has joined #css 19:17:42 tobie has joined #css 19:28:24 florian has joined #css 19:52:35 dbaron has joined #css 19:59:50 zcorpan has joined #css 20:04:37 teoli_ has joined #css 20:19:26 teoli has joined #css 20:26:35 SimonSapin: Oh, I figured out what the "Element link is missing..." error was about. 20:27:48 Custom elements end up sitting in the body, after the boilerplate. That's only valid for microdata, which requires a property='' attribute. 20:27:54 I can fix that up - I already do so for