11:27:00 RRSAgent has joined #webfonts 11:27:00 logging to http://www.w3.org/2016/09/12-webfonts-irc 11:27:10 Zakim has joined #webfonts 11:27:30 rrsagent, this meeting spans midnight 11:27:43 zakim, remind me in 6 hours to go home 11:27:43 ok, ChrisL 11:27:54 rrsagent, make logs public 11:28:56 kuettel has joined #webfonts 11:29:39 present+ kuettel 11:29:43 present+ ChrisL 11:29:53 present+ Bram Stein 11:29:59 Vlad has joined #webfonts 11:30:16 present+ 11:30:30 Khaled has joined #webfonts 11:31:17 Chair: Vlad 11:31:34 Vlad: welcome everyone, and thanks to Google for hosting! 11:31:51 kuettel: lucky the office was so close to the conference hotel 11:31:57 scribenick: ChrisL 11:32:44 sergeym has joined #webfonts 11:33:03 present+ sergeym 11:33:35 Vlad: a few things to get woff2 finished. after that is an unknown 11:34:34 Vlad: do not want the group to just exist without a plan for the next task. We have time left in the charter but let us decide what topics to pursue and get a new charter going. Or, decide to do maintenance only. 11:35:25 kuettel: what timescales are in effect? 11:36:22 Vlad: current charter is woff2 only. We can't change that charter before that happens, as any change will result in rechartering and rejoining. This affects IP commitments 11:37:05 Vlad: rejoining covers the new deliverables under the W3C royalty free patent policy 11:37:59 ChrisL: (current charter ends 31 May 2017) 11:38:38 Vlad: so if someone proposes a new work item, and we agree, then there will be an obligation to provide that IP once you join the group 11:39:17 ChrisL: we don't have to wait, we can recharter when we want to 11:39:40 Vlad: don't want to loose the IP commitments when the group recharters 11:40:29 Vlad: as an example Apple only joined for WOFF2 fairly late on 11:40:55 present+ Khaled 11:41:05 present+ Bram 11:41:26 agenda+ WOFF2 testsuite 11:42:18 agenda+ next steps for implementations of WOFF2 11:42:46 sergeym: we have multiple implementations? 11:42:59 Vlad: right, all the browsers used the same library 11:43:20 sergeym: what about font tools 11:44:15 Ned: all browsers share parts of the code but not all. So Safari Webkit for example are different and parts are the same 11:44:22 Vlad: right, it is a grey area 11:45:13 Vlad: so we need to examine the amount of shared code 11:45:38 present+ Ned 11:46:43 sergeym: Brotli status? 11:47:03 ChrisL: it is a normative ref developed by IETF. It is now an RFC 11:47:15 sergeym: it has two independent implementations 11:47:38 behdad; and there is a native JS implementation too, so that is three 11:48:07 Ned: if conformance is measured at user agent level, how much code share is allowed 11:48:23 present+ Behdad 11:49:19 Vlad: spec is only good if people can independently implemnt it. hence the requirement for two implementations passing each test. it isn't an interoperability requirement for CR, it is an implementability test 11:51:01 jfkthame has joined #webfonts 11:51:04 Ned: so the downside is that it remains at CR 11:51:14 present+ jfkthame 11:51:57 Ned: apple would like to reimplement but we don't plan to in the short term 11:52:35 ... benefits for our sourcebase to refactor, and progressing spec past CR would be another driver for that 11:52:50 Vlad: what license is there on the Google reference implementation? 11:52:56 sergeym: MIT license 11:53:21 Vlad: so people can make changes and are not required to contribute them back 11:53:54 Kaled: what is a UA? Fonttools can decode the fonts 11:55:27 ChrisL: so any sort of viewer that displays the html/css counts 11:56:16 ChrisL: UA tests assume text display but not font access. Decoder tests assume access to the decoded font 11:56:35 (we notice the readme says MIT and the actual language is Apache) 11:56:58 behdad: Apache includes an IP grant 11:57:23 action kuettel to sort out the Google WOFF2 decoder license 11:57:24 Created ACTION-202 - Sort out the google woff2 decoder license [on David Kuettel - due 2016-09-19]. 11:59:11 Vlad: JS implementations are common now, there is a clear benefit to shared libraries 12:00:01 ... also a benefit for AMP as well which precludes third party JS libraries 12:00:40 output would be a library not a specification. But Rod mentioned we can have the API as a specification 12:01:06 kuettel: so that is two proposals, one for a library and one for native browser support. Both same API 12:01:41 Vlad: is that serverside? 12:01:47 kuettel: not necessarily 12:02:13 Vlad: client and server communicate 12:02:53 kuettel: Bram from Adobe is the expert on webfonts for typekit 12:03:18 Vlad: happy Bram could attend 12:03:58 Vlad: know Monoype, Adobe, Microsoft have IP related to subsetting 12:04:27 ... none of us have express permission to propose tech in detail 12:04:57 (we talk about the joy of discussions with lawyers) 12:05:13 Vlad: access to shared IP 12:07:20 (more patent policy discussions and cost benefit analysis) 12:08:34 kuettel: agenda+ dinner 12:12:43 topic: WOFF2 test suite status 12:13:08 Vlad: discussion on transformed glyf table, was that clear? 12:13:32 khaled: yes. Difference was huge for that one test 12:14:16 khaled: conformance is all implemented, just need to check implementations against them 12:14:26 Vlad: any known tests not yet done? 12:14:32 khaled: no 12:14:57 ... less than 10 tests that had no descriptions in test plan, added them 12:15:06 ... we can review them if needed 12:18:14 Ned: Safari 10 has WOFF2 support, this week on iOS and next week on macos 12:18:34 kuettel: all the browsers have woff2 support now! 12:18:38 Khaled has joined #webfonts 12:18:47 resolved: celebration 12:23:47 Khaled: (projects a diff of the test descriptions) 12:31:18 (we agree on the test description changes) 12:32:43 khaled: and now we need to fix the Google implementation as it does not pass all the tests 12:34:33 tabledata-recontruct-loca-001 12:35:42 Khaled has joined #webfonts 12:37:15 tabledata-recontruct-loca-001 12:37:44 kuettel has joined #webfonts 12:38:55 bram: some poeple think that woff2 eliminates metadata! Because the section is so short, just points to woff1 12:45:37 Vlad has joined #webfonts 12:50:21 Chris is showing a demo of the WOFF 2.0 conformance test suites running in the W3C test framework 12:51:12 Chris: needed to make some changes to the tests in order for it to run, e.g. locating fonts in a special directory 12:51:30 Chris: we are in fairly great shape for the user agent tests 12:51:58 Chris: one of the tests that is failing is the total font size 12:52:40 Khaled: WOFF 2.0 module has a new API. OTS is still using the old API. 12:52:56 Khaled: Firefox is currently using an older version of OTS, thus perhaps the failure 12:53:32 Khaled: when Firefox picks up the latest version, should work 12:53:41 edge does not use OTS 12:54:05 Vlad: so here sharing the decoder is not exactly the same. Edge does not use OTS 12:54:32 ... we have examples where Edge passes and FF/Chrome fail 12:54:58 (FYI - hangout sound seems to have dropped off, i see people apparently talking but hear nothing) 12:56:49 Jonathan, are you able to hear now? 12:56:52 yes, it's back 12:56:56 Great! 12:57:47 sergeym: we could have a seperate version of UA tests that just displays P/F for testing with fonttools 13:02:10 khaled: the failing tests should be reported on github. There are 4 or 5 such tests 13:05:22 ChrisL: what do we do for format tests? 13:05:38 khaled: we have about 300 files for testing the format tests 13:07:45 topic: Big discussion on new work items 13:08:17 mine's a cappucino, please :) 13:08:52 got it, coming right up :) 13:28:45 kuettel has joined #webfonts 13:29:51 Garret has joined #webfonts 13:30:06 Khaled has joined #webfonts 13:30:34 scribenick: Garret 13:30:47 rrsagent, here 13:30:47 See http://www.w3.org/2016/09/12-webfonts-irc#T13-30-47 13:32:43 David: go around the table for ideas for projects for the working group to tackle next. 13:33:05 Bram: joined to get an update on the working group and find out where they're going next. 13:34:53 David: Rod proposed a few things 13:35:12 David: - font access/manipulation apis in js. 13:36:26 David: - named unicode ranges. Goes back to Jonathon Dagget. Would be helpful for scripts such as cjk where the range is not concise. Instead could have something like unicode-range: japanese 13:37:20 David: Other unicode range issues: problem with open type features not spanning subsets. 13:38:22 I would like to see the arabic and latin unicode-range example khaled just mentioned 13:39:34 Vlad: there is an iso standard that has been finalized which is based on apples composite font representation. xml based format that solves multiple problems. The biggest is the inability to support more then 64k glyphs. Recipe points to multiple fonts that behave as one. 13:39:45 Ned: doesn't work with CJK. 13:40:01 Vlad: crf allows different fonts by language. 13:41:07 Ned: the problem is that web browser needs to know how the crf is constructed to know which resources it needs. Doesn't solve the problem where common characters need to behave differently in different circumstances. 13:42:07 ISO/IEC 14496-28:2012 (Composite Font Representation) 13:42:16 Vlad: purpose of my comment is to remind the standard exists. 13:42:28 https://blogs.adobe.com/CCJKType/2012/07/cfr-support-in-mountain-lion.html 13:43:00 https://blogs.adobe.com/CCJKType/2012/04/cfr.html 13:43:05 Ned: there's the issues having to do with common characters. Another cjk related situation is the different glyph behaviour of codepoints as they exist in different languages. 13:43:34 Ned: paranthesis will appear differently depending on script. With cjk same script different language has a different behaviour. Even unicode range would not address that issue. 13:44:23 Ned: with arabic if you have a full stop next to cjk. You want an appropriate appearance for cjk based on language. 13:44:56 Ned: you could have identified a font with cfr, but it still doesn't address the issue that without having specified it you want the common character. 13:46:07 Ned: the issue of fallback is not determined for each glyph independently. Each page will specify a font stack. It's primarily latin but has a run of arabic. You want the common characters to take on the properties of that script. 13:46:27 Sergey: you'll be wrong in some cases. 13:47:28 Ned: I think there's a huge amount of work that could be done. There's a lot of w3c work for layout. 13:47:56 Chris: there are sometimes no examples of how combinations should behave. 13:49:48 Kaled: important issue is cross font features. 13:50:24 Sergey: should not be a concern of w3c. 13:50:47 Khaled: harfbuz can do it. 13:51:26 (preserves basic shaping across fonts. not kerning) 13:52:31 Khaled: i think if you have unicode range for the same script served as two fonts you lose kerning and features across those fonts. 13:53:04 David: what a lot of these are touching on is how could we support large web fonts. ie. Multiple megabytes. Latency would be too high without leveraging other techniques. 13:53:24 David: the first one is if your serving streaming fonts cant you put the fonts back together. 13:54:46 Ned: the next point, templating brush strokes tech. That's a quest of how can we create new formats in an extensible way. Not just a question about cjk. I see there being a question of there is a negotiation now. It shouldn't be the servers job to sniff the client to determine what they support. There should be a way to negotiate what they support. Then it's much easier to experiment with new formats. 13:55:07 David: some is handled by @font-face. You can enumerate formats. 13:55:24 Ned: I'm interested in closing the hole. 13:56:17 David: we need to sniff because not all browsers fully implement the spec. For example with unicode range some browser will download all specified fonts. 13:56:34 Ned: we think that with the way things are now it's possible to introduce new formats. 13:57:24 Chris: @font-face tried to do it the other way, the css would specify which were available and the client would choose. 13:58:17 David: bullet proof syntax. To Chris' point it was to work around bugs in browsers. For example on particular android systems would crash when encountering local. 13:58:35 Bram: we use it to pick formats that render better on certain platforms. 13:59:22 Khaled: or if we want to drop hinting because it's not used. 13:59:38 Bram: it's something we're trying to move away from. 14:00:12 David: Ned, I agree that servers should not need too sniff ua's. 14:00:59 Ned: with variation fonts when does it become a new format. ie. hinted vs unhinted ttf's. 14:02:09 Ned: font formats are becoming increasingly forked. 14:02:37 Bram: we differentiate between container format, outline format. Then can mix and match to determine what the browser gets. 14:03:14 Ned: it sucks on either end to have to figure out what the fallback is. 14:03:44 Vlad: we're just about to finalize registration font type for the format and sub flavours. 14:04:32 Chris: the reason there's the format in the first place is to try and get a top level mime type for fonts. We had to give up on that and put in the hack with format using strings. Should have been a mimetype. 14:05:53 Ned: sounds like format is not solving the problem anymore. 14:06:03 Chris: it's not fully solving it. 14:06:26 Ned: not that a service wouldn't want to do this, it would be possible to serve a font that supports multiple formats. 14:06:41 hard to use @font-face to separately serve SVGinOT, COLR and classic OT from three URLs for example 14:06:59 Ned: I know that typekit would not serve a resource with svg glyphs and colour glyphs. You could though, and the client could support either and pick. 14:07:36 Khaled: many hybrid open type fonts. 14:08:32 David: back too the list: could there be a new format or mechanism for creating font files. 14:08:39 Sergey: or a mechanism for streaming. 14:08:58 Chris: strokes and library of terminals. Should be more compact in theory. 14:09:30 Vlad: monotype has it's own stroke format for years. For many devices that have resident fonts and a rasterizer. Especially for CJK fonts. 14:09:53 Vlad: also experimented, not successfully, with stroke fonts with different styles for the strokes. 14:11:23 Ned: battle between smaller but not nice enough, and the opposite. 14:11:55 Vlad: good for devices with limited resources that are self contained. 14:12:27 Ned: defining a font format is a huge/time consuming effort. 14:13:03 Vlad: vast array of standards and organizations that issue them. We can help others do something if we feel it's helpful. 14:13:25 Vlad: may not always be practical to do something outside of the scope of w3c. 14:27:01 Vlad: identified one potential: native implementation of combining fonts client side (ie. typekit augmented fonts) 14:29:11 Sergey: when sending font to printers subset to all characters on the first page. Then create batches which use more and more. The first one had the glyphs filled with zeroes. Then patches filled the holes. 14:29:38 Sergey: works for glyph data but not everything else. 14:32:21 David: last item can we send metrics first so the browser can do layout first. 14:32:58 Ned: would be only useful for CJK. 14:33:20 David: could also be useful for things like noto that support a large number of scripts in one font. 14:33:52 Ned: there's two types of fonts ones with huge number of glyphs and ones with complex shaping. Noto is the first example of one with both. 14:34:06 Behdad: CJK in Noto is seperate. 14:34:17 Ned: still have the possibility of one side with both. 14:35:31 David: if we were to see pan unicode fonts those files would be big. 14:35:42 Khaled: there would be other issues then just the size. 14:36:06 Peter: arial unicode was around 23mb. 14:37:44 Peter: in direct write in windows 10 added the ability to download fonts from cloud services. Created mechanism similar to the subsetter where only a portion of the font is downloaded depending what's on the page. Then figure out from the content what byte ranges are needed to layout the content. Then fetch content in 64k chunks. 14:37:59 David: for browser or platform? 14:38:03 Peter: for platform. 14:39:18 Vlad: what we learned with woff 1. When you use byte range request the handshake could many times be longer then time to transfer the data. Kenji did that analysis again for webfonts in digital ads. He showed that a full font will take 50ms to download on mobile platform. The subset would take 10. The handshake 100-150ms. 14:39:44 Vlad: http2 being able to download more with one request is helpful here. 14:40:34 Peter: in the study what size of fontdata? 14:40:42 David: probably small 14:41:04 Khaled has joined #webfonts 14:41:15 Vlad: the overhead even if they had subset of chinese kills any gain from reducing the size. Download time is usually pretty fast. 14:41:55 Ned: you can imagine cases where it's not worth augmenting more then a couple of times because the data required to specify new ranges. 14:42:15 David: named unicode ranges may need to be persistent but dynamically updatable. 14:47:00 present+ Peter_Constable 14:50:30 Sergey: coming back to efficient stream we could also look at composite formats. 14:50:52 Ned: what do you see missing from composite formats now? 14:51:14 Sergey: you need to specify family directly. 14:51:37 Sergey: need individual font face rules. 14:52:25 Ned: wondering if the server now needs to be parsing content for the optimal experience. 14:52:57 Sergey: think it would be interesting to look at alternate ways for specifying composite fonts. Get hints working better and more. 14:53:14 Ned: does there need to be a replacement for @font-face? 14:53:28 Sergey: maybe an improvement. 14:53:56 Ned: don't want an intermediate resource, would be good if it could be specified in css. What's missing in the css. 14:54:25 Behdad: being able to specify language and script instead of unicode range would be useful. 14:54:50 Behdad: selection works based on script but needs to be able to be refined by language. 14:55:09 Behdad: no canonical algorithm for font fallback selection. 14:55:35 Behdad: css algorithm is broken. 14:56:08 Behdad: the hard part is around common and formatting characters. 14:57:52 Khaled: some clients do fallback after shaping. 15:02:46 Behdad: shape and then only day extra work for areas where that doesn't work. Decompose then try to recompose if the font supports it. 15:04:46 Ned: all chrome knows is that none of the things harfbuz tried works and then tries going on to the next fallback 15:07:43 Behdad: it's like we do some unicode normalization on the input to make sure it shapes better. 15:19:04 Vlad: would like to bring up tracking. For fonts on the web it's not a big issue since services can track. It's more difficult in the larger world like use in digital ads. 15:19:36 Vlad: web font services want to know how many times a fonts delivered. Ads track number of views but don't want to share that information. 15:20:04 Vlad: can the group consider doing a universal tracking mechanism that no-one will object too? 15:20:38 Chris: that's the problem. Also there's some ambiguity in what you're counting. 15:21:12 Vlad: once the font is cached it wont ask the service again, but tracking would count the impression. This could count towards someones subscription package. 15:21:50 Peter: what happens when the quota is up since the font is already cached. 15:22:16 Vlad: will get a reminder to subscribe to a bigger limit. 15:22:34 Vlad: it's about accurate billing. 15:23:01 Chris: something that made webfonts succeed is that the browser is not policing usage. 15:23:24 Vlad: right now css includes a ping link that doesn't slow anything down. 15:23:49 Vlad: ads providers don't like any additional pinging as part of display ad code. 15:24:06 Vlad: wondering if we can tackle a solution that makes all sides happy. 15:25:55 David: somewhere where there could be lots of complication such as in abuse and scam. We could end up coming up with combinations that would be easy to abuse. 15:26:55 Chris: someone could run up someone else's bill. 15:27:15 Behdad: ads already have these problems. 15:27:35 David: yes, but they tackle them differently ie. have a bunch of intelligence server side. 15:28:01 Vlad: in order to create a thriving ecosystem you need to make sure creators can get accurately paid for their product. 15:28:52 Vlad: because ads don't want us to do tracking we have to do unlimited usage licenses. 15:29:33 Vlad: a problem with independent creator because we can't give them accurate numbers of usage. 15:29:58 Vlad: we currently have to limit fonts available to these services. 15:30:32 Bram: we have the same problems, but feel this shouldn't be a w3c solutions. It's our problem to keep track of usage. 15:30:50 Vlad: it's about creating sufficient transparency that policing is not necessary. 15:31:01 Vlad: I don't have a solution. 15:31:19 David: I agree. It's probably one of the hardest problem as an industry we have yet to solve. 15:31:36 David: ads is a more complicated situation than traditional usage. 15:34:38 Vlad: want to bring up: non-traditional deliverables can the w3 accommodate. Like a js library. Spec portion would be the api. 15:35:36 Chris: if we're developing a spec and an implementation of that spec then that's fine. As long as someone can develop an independent implementation. 15:36:01 Vlad: if it's something that doesn't fit the typical mold like having a test suite available. 15:36:17 Chris: some features may be able to have a native implementation. 15:36:46 Chris: will it be client side or have the option of sending some operations to a server. 15:36:58 Vlad: everything's on the table. 15:38:14 Bram: what is this groups scope, could we do css stuff? 15:38:25 Chris: css should be left to the css group. 15:38:55 Bram: interested in extended css font loading. 15:39:07 David: API's to query info about a font? 15:39:11 Bram: yes 15:48:44 rrsagent, generate minutes 15:48:44 I have made the request to generate http://www.w3.org/2016/09/12-webfonts-minutes.html Vlad 17:27:44 ChrisL, you asked to be reminded at this time to go home 17:40:20 jfkthame has left #webfonts