/irc-logs / w3c / #css / 2012-07-31 / end

Options:

  1. # Session Start: Tue Jul 31 00:00:00 2012
  2. # Session Ident: #css
  3. # [00:08] <TabAtkins> Heh, kk. Thanks anyway. ^_^
  4. # [00:08] <TabAtkins> Writing up a proposal to the list now.
  5. # [00:15] * Joins: arno (arnog@192.150.10.201)
  6. # [00:17] * Joins: jdaggett (jdaggett@202.221.217.73)
  7. # [00:20] * fantasai waves to jdaggett
  8. # [00:20] <jdaggett> hiya
  9. # [00:20] <jdaggett> every time i read css3-text my head explodes
  10. # [00:20] <jdaggett> i'm picking up the pieces now
  11. # [00:20] <fantasai> lol
  12. # [00:21] <fantasai> I did try to improve the terminology a bit
  13. # [00:21] * Quits: jet (jet@206.15.76.122) (Quit: jet)
  14. # [00:21] <fantasai> there's more links and <dfn>s and stuff
  15. # [00:21] <fantasai> jdaggett: at least, wrt line breaking. I think the letter/word-spacing section is a bit of a mess
  16. # [00:24] <jdaggett> yes, that was the cause of today's head explosion
  17. # [00:26] * heycam|away is now known as heycam
  18. # [00:29] <jdaggett> "When the resulting space between two characters is not the same as the default space, user agents should not use optional ligatures. "
  19. # [00:29] <jdaggett> that's a bizarre sentence
  20. # [00:29] <jdaggett> i think you mean to refer to the default *advance*
  21. # [00:30] <jdaggett> but even that's kind of weird
  22. # [00:30] <jdaggett> since inter-glyph spacing is actually (advance + kerning adj)
  23. # [00:31] <jdaggett> i think the 2.1 defn was more clear
  24. # [00:31] <jdaggett> when the value of letter-spacing is anything other than normal/0, ligatures are not applied
  25. # [00:32] * Quits: krit1 (krit@192.150.10.201) (Quit: Leaving.)
  26. # [00:34] * heycam is now known as heycam|away
  27. # [00:34] * heycam|away is now known as heycam
  28. # [00:40] * Quits: arno (arnog@192.150.10.201) (Quit: Leaving.)
  29. # [00:41] <stearns> jdaggett: if letter spacing defines a minimum, optimum and maximum, and the algorithm ends up with normal letter spacing for a particular word, you should get ligatures
  30. # [00:47] * Joins: krit (krit@192.150.10.201)
  31. # [00:50] * Joins: arno (arnog@192.150.10.201)
  32. # [00:52] * Quits: krit (krit@192.150.10.201) (Ping timeout)
  33. # [00:54] <jdaggett> stearns: that's completely insane!!
  34. # [00:54] <jdaggett> you'd need to first run through layout with those parameters
  35. # [00:54] <jdaggett> then based on the spacing that comes out of the justification alg
  36. # [00:55] <jdaggett> enable/disable ligatures within a text run
  37. # [00:55] <jdaggett> which will in turn necessitate a reflow operation
  38. # [00:55] <jdaggett> since the use of ligatures will affect widths
  39. # [00:55] <jdaggett> pure insanity
  40. # [01:14] <stearns> jdaggett: how about if the optimum value of letter-spacing is anything other than normal/0, ligatures are not applied
  41. # [01:14] <jdaggett> which sounds just how it was defined in 2.1!
  42. # [01:15] <jdaggett> i think i don't see a clear use for a three-valued letter-spacing property
  43. # [01:15] <stearns> jdaggett: do you see a clear use for a three-valued word spacing property?
  44. # [01:16] <jdaggett> well, more so than letter-spacing!
  45. # [01:16] <stearns> jdaggett: I agree, it's more important
  46. # [01:16] <jdaggett> but it really seems like that's there to workaround the lack of hyphenation
  47. # [01:16] <jdaggett> so i think i would probably classify it as also unnecessary
  48. # [01:17] <stearns> jdaggett: the three values are more important *with* hyphenation, but are also useful without hyphenation
  49. # [01:17] <jdaggett> or, more precisely, the three-value nature of it is unnecessary i think
  50. # [01:17] <jdaggett> hmmm
  51. # [01:17] <jdaggett> i think hyphenation algs are subtle beasts
  52. # [01:17] <jdaggett> and this isn't a subtle property at all
  53. # [01:18] <jdaggett> if the exact values used depends on the hyphenation alg, then i think authors will be screwed
  54. # [01:19] <stearns> jdaggett: not sure what you mean. Authors can pick a single value to force it to be used (when possible) or a range to allow the algorithm more choices
  55. # [01:21] <jdaggett> but without an explicitly defined hyphenation alg, it's just more random values in a pot
  56. # [01:21] <jdaggett> which means authors will simply fiddle with the results in webkit
  57. # [01:23] <jdaggett> i guess what i'm saying is that i don't think having more inputs to a black-box process is a good thing
  58. # [01:23] <jdaggett> it does not assure good results at all
  59. # [01:24] <jdaggett> if defined then word-spacing should just be a simple multiple
  60. # [01:24] <jdaggett> which would be used as a minimum in the hyphenation process
  61. # [01:24] <jdaggett> just as it is today
  62. # [01:25] <stearns> jdaggett: I see what you're saying, but merely defining a minimum doesn't let anyone improve their algorithms
  63. # [01:25] <stearns> jdaggett: http://lists.w3.org/Archives/Public/www-style/2011Jun/0015.html
  64. # [01:25] <stearns> jdaggett: and we'll be stuck with too-loose spacing forever
  65. # [01:27] <jdaggett> hmm, the "too loose" parameter should really be part of hyphenation controls and not something that sets a hard maximum like this
  66. # [01:27] <jdaggett> and i think the statement "Justified text will almost always be
  67. # [01:27] <jdaggett> too loose, which is the current situation in my experience."
  68. # [01:28] <stearns> jdaggett: it's never really a hard maximum - there will always be lines that don't work with a given range
  69. # [01:28] <jdaggett> is based on viewing justified text w/o hyphenation
  70. # [01:28] <jdaggett> huh
  71. # [01:28] <jdaggett> the way word-spacing is defined, it's a hard maximum
  72. # [01:29] <jdaggett> unless i'm missing something
  73. # [01:29] <stearns> read 8.0
  74. # [01:29] <stearns> "...must not violate the minimum spacing limit and should also avoid exceeding the maximum. "
  75. # [01:30] * Quits: arno (arnog@192.150.10.201) (Quit: Leaving.)
  76. # [01:31] <jdaggett> so you're saying "should" ==> value is a hint?
  77. # [01:31] <jdaggett> god, this is even more useless than i thought
  78. # [01:32] <stearns> think of a 20em line with content consisting entirely of 8em words. there's always going to be a bad line somewhere that can't respect the maximum.
  79. # [01:32] <stearns> but if possible the maximum should be respected
  80. # [01:32] <jdaggett> that depends on the hyphenation involved
  81. # [01:33] <stearns> no hyphenation points in my hypothetical example :)
  82. # [01:33] * Quits: drublic (drublic@77.2.151.107) (Client exited)
  83. # [01:33] <jdaggett> i don't think we should be discussing this without thinking about hyphenation
  84. # [01:33] <jdaggett> no hyphenation points ==> silly example...
  85. # [01:33] <jdaggett> ;p
  86. # [01:34] <jdaggett> are you using 10.7?
  87. # [01:34] <stearns> haven't upgraded yet
  88. # [01:34] <jdaggett> drat
  89. # [01:34] <stearns> what's to see?
  90. # [01:34] <jdaggett> &x1f4a9;
  91. # [01:34] <jdaggett> ;p
  92. # [01:36] <jdaggett> hint: http://www.unicode.org/charts/PDF/U1F300.pdf
  93. # [01:36] <jdaggett> 10.7 has nice colored glyphs for those...
  94. # [01:38] <stearns> man, that particular glyph is really motivating me to upgrade
  95. # [01:39] <jdaggett> yup, it's a powerful one
  96. # [01:39] <jdaggett> &x1f4a8; should motivate you even more...
  97. # [01:40] <stearns> "cartoon fart"? - are there canonical names for these somewhere?
  98. # [01:41] <jdaggett> yeah, page 9
  99. # [01:41] <stearns> ah, "briffit" - that makes much more sense :)
  100. # [01:41] <jdaggett> although that one is politely called "dash symbol"
  101. # [01:41] * jdaggett digs around for the damn dictionary
  102. # [01:42] <stearns> http://tvtropes.org/pmwiki/pmwiki.php/Main/BriffitsAndSqueans
  103. # [01:43] <jdaggett> i love it, beetle bailey makes it to unicode...
  104. # [01:44] * Joins: arno (arnog@192.150.10.201)
  105. # [01:47] <fantasai> jdaggett: the spec will make at least 15% more sense once I've edited in the normal == zero bit and associated cleaning up :)
  106. # [01:48] * fantasai is finding lots of sentences that can be simplified now
  107. # [01:48] <jdaggett> yeah, but the ligature disabling wording needs to be the 2.1 defn
  108. # [01:48] <jdaggett> the one now is completely insane
  109. # [01:49] <jdaggett> i.e. feature definition needs to happen before spacing decisions are made
  110. # [01:50] <jdaggett> you can't make them feature defintion dependent on spacing decisions because it would mean multiple shaping passes
  111. # [01:56] * Quits: miketaylr (miketaylr@70.112.101.224) (Quit: Leaving...)
  112. # [01:56] <fantasai> jdaggett: The 2.1 defn says exactly the same thing as css3-text right now.
  113. # [01:56] <fantasai> http://www.w3.org/TR/CSS21/text.html#spacing-props
  114. # [01:56] <fantasai> "When the resultant space between two characters is not the same as the default space, user agents should not use ligatures. "
  115. # [01:56] <fantasai> The only difference is s/ligatures/optional ligatures/
  116. # [01:57] <fantasai> I'm happy to change that to something sane :)
  117. # [01:57] <fantasai> but copying 2.1 isn't going to help
  118. # [01:57] <fantasai> ;)
  119. # [01:57] <jdaggett> well, the problem is with the interaction between min/max and that wording
  120. # [01:58] <fantasai> not sure what you mean
  121. # [01:58] <jdaggett> with min/max in the picture, as alan notes this means that the ligatures on/off decision is a function of spacing
  122. # [01:59] <fantasai> even without, that's true
  123. # [01:59] <jdaggett> huh?
  124. # [01:59] <fantasai> if I set 'letter-spacing' to a non-zero non-normal value, it turns off ligatures
  125. # [01:59] <fantasai> if I leave 'letter-spacing' as normal, and justification changes the effective spacing on that line
  126. # [01:59] <fantasai> it turns off ligatures as well
  127. # [02:00] <fantasai> according to that text in 2.1
  128. # [02:00] <fantasai> has nothing to do with min/max
  129. # [02:00] <jdaggett> huh?
  130. # [02:00] <jdaggett> how does justification affect inter-glyph spacing?
  131. # [02:00] <fantasai> justification is allowed to change the spacing between grapheme clusters
  132. # [02:01] <fantasai> this is true since CSS1
  133. # [02:01] <fantasai> I don't think it's been implemented in Gecko, but it's certainly allowed per spec
  134. # [02:01] * fantasai isn't sure, maybe it has been...
  135. # [02:01] <jdaggett> no user agent implements such craziness
  136. # [02:02] <fantasai> it would take effect, e.g. when there's a line of text with no spaces on it
  137. # [02:03] <fantasai> The spec clearly points out that to turn off that possibility, the author must specify 'letter-spacing: 0' instead of 'letter-spacing: normal'
  138. # [02:03] <fantasai> Definition of 'letter-spacing: normal': "This value allows the user agent to alter the space between characters in order to justify text."
  139. # [02:04] <jdaggett> again, this is fairytale land
  140. # [02:04] <jdaggett> if someone implemented this they would be implementing an infinite loop
  141. # [02:04] <fantasai> ?
  142. # [02:05] <jdaggett> because if justification can affect feature definition, you would need to potentially reshape after justification
  143. # [02:06] <jdaggett> which could easily produce an alg that meant that the two would interact to create an infinite loop
  144. # [02:06] <fantasai> which hopefully the implementer is not stupid enough to try :)
  145. # [02:06] <jdaggett> which we should not be putting in a spec!!
  146. # [02:06] <fantasai> it isn't an infinite loop in the spec!
  147. # [02:06] * fantasai doesn't understand why you think this
  148. # [02:06] <fantasai> you lay out the text with all ligatures
  149. # [02:06] <fantasai> you measure it
  150. # [02:07] <fantasai> you figure out how much space is leftover
  151. # [02:07] <jdaggett> you justify it
  152. # [02:07] <fantasai> you try to apply the leftovers to spaces in the line
  153. # [02:07] <fantasai> find out there aren't any
  154. # [02:07] <jdaggett> oh, wait, letter spacing isn't zero, need to disable ligatures
  155. # [02:07] <fantasai> yes
  156. # [02:07] <jdaggett> you reshape without ligatures
  157. # [02:08] <jdaggett> letter spacing is now zero
  158. # [02:08] <fantasai> then you leave it there.
  159. # [02:08] <fantasai> it's two passes, not infinite
  160. # [02:08] <jdaggett> total stupidity
  161. # [02:08] <jdaggett> we should never, ever design specs that imply such silly processing cycles
  162. # [02:09] <jdaggett> for the simple reason that sane implementations will intentionally need to deviate from the spec
  163. # [02:10] <fantasai> What, you think it's better that the UA justify a single line containing "field" as
  164. # [02:10] <fantasai> fi e l d
  165. # [02:10] <fantasai> because fi formed a ligature?
  166. # [02:10] <jdaggett> but no UA ever changes inter-glyph spacing when doing justification
  167. # [02:11] <jdaggett> only inter-word spacing
  168. # [02:11] <fantasai> That's false, I've seen it before in printed materials.
  169. # [02:11] <fantasai> Besides, Håkon would kill me if it wasn't allowed.
  170. # [02:12] <jdaggett> i'm not talking about what happens in printed matter
  171. # [02:12] <jdaggett> i'm talking about the css mechanism
  172. # [02:12] <fantasai> CSS is used to layout things for print, too.
  173. # [02:12] <fantasai> s/layout/lay out/
  174. # [02:14] <jdaggett> not sure what your point is
  175. # [02:14] <jdaggett> i'm talking about mechanism and css
  176. # [02:14] <jdaggett> not about what is and is not done in printed material
  177. # [02:15] <fantasai> CSS is used to produce print materials, so the mechanism in CSS needs to be flexible enough to allow that kind of output
  178. # [02:15] <jdaggett> you've got a set of property definitions that seem to be at odds with what implementations are actually doing
  179. # [02:15] <fantasai> Just because browsers can't do something doesn't mean we should forbid it
  180. # [02:15] <jdaggett> sure "needs to be" is fine
  181. # [02:15] <fantasai> s/something/something today/
  182. # [02:16] <jdaggett> so your claim is that there are print ua's that implement a combination of text-align and letter-spacing/word-spacing
  183. # [02:17] <jdaggett> such that ligatures are enabled/disabled in the way you describe?
  184. # [02:17] <fantasai> no idea about ligatures, but they do implement justification algorithms that adjust spacing between individual letters
  185. # [02:17] <fantasai> and it would be ridiculous to hang on to ligatures like 'fi' when you do that
  186. # [02:18] <fantasai> it's entirely possible the examples I've seen are produced by software that doesn't have ligatures
  187. # [02:18] <fantasai> s/have/handle/
  188. # [02:18] <jdaggett> sorry, how do they adjust inter-glyph spacing as part of justification
  189. # [02:18] <jdaggett> ?
  190. # [02:19] <jdaggett> using 2.1 properties?
  191. # [02:20] <jdaggett> the 2.1 spec has the wording in the defn of letter-spacing: normal
  192. # [02:20] <jdaggett> "The spacing is the normal spacing for the current font. This value allows the user agent to alter the space between characters in order to justify text."
  193. # [02:21] <fantasai> I don't understand what you're trying to prove.
  194. # [02:21] <jdaggett> but i actually don't see at all how this would work in practice
  195. # [02:21] <jdaggett> i don't think any user agent implements any sort of mechanism to do this
  196. # [02:21] * fantasai suggests testing IE, if you have it handy. It supports text-justify: distribute, which makes it easy to trigger these cases.
  197. # [02:22] <fantasai> TeX adjusts inter-glyph spacing as part of justification. I'd be surprised if it doesn't also support ligatures, so that'd be another thing to test
  198. # [02:22] <fantasai> Not using 2.1 properties, but the same concept applies.
  199. # [02:23] <jdaggett> right, my point is that in the confines of 2.1 with just text-align, letter-spacing, and word-spacing i don't think it's possible to implement something that makes sense
  200. # [02:23] <jdaggett> text-justify is part of css3-text
  201. # [02:23] <fantasai> Sure it is
  202. # [02:23] <fantasai> Write a page that line-breaks such that there is a line of text
  203. # [02:24] <fantasai> ending in a soft wrap
  204. # [02:24] <fantasai> that contains no spaces
  205. # [02:24] <fantasai> justify the paragraph containing that line
  206. # [02:24] <jdaggett> and i think values like text-justify: distribute should automatically disable ligatures also
  207. # [02:24] <jdaggett> there should never be this weird "if the spacing is non-zero disable" logic anywhere
  208. # [02:24] <jdaggett> it makes no sense at all
  209. # [02:25] <jdaggett> in fact, i think the interaction between letter-spacing and some of the values of text-justify probably needs to be laid out much more clearly
  210. # [02:26] <fantasai> that complaint is insufficiently specific to be actionable for me
  211. # [02:26] <fantasai> sorry
  212. # [02:26] <jdaggett> it's pretty simple
  213. # [02:27] <jdaggett> how does the value of letter-spacing affect spacing/feature decisions for different values of text-justify
  214. # [02:27] <fantasai> it sets the limits
  215. # [02:28] <fantasai> on how far the expansion opportunities can be expanded/compressed
  216. # [02:29] <fantasai> text-justify doesn't say how far they can be expanded/compressed, only defines their relative priority based on which characters they're between/at
  217. # [02:30] <fantasai> text-justify basically says "gaps between Latin letters are treated the same as gaps between Chinese characters" or "gaps between Latin letters are a lower-priority than gaps between Chinese characters", that kind of thing
  218. # [02:31] <jdaggett> you mean values other than none or auto?
  219. # [02:31] <fantasai> yeah
  220. # [02:32] <jdaggett> basically, any distribution other than inter-word should break ligatures
  221. # [02:33] <fantasai> no, not really
  222. # [02:34] <fantasai> inter-word can cause inter-letter spacing, too
  223. # [02:34] <jdaggett> ok, you lost me
  224. # [02:34] <fantasai> if there are no spaces on the line, you can fall back to inter-letter spacing
  225. # [02:34] <fantasai> inter-word has spaces as first priority
  226. # [02:34] <fantasai> but inter-letter spacing is still there at a second priority
  227. # [02:35] * fantasai checked in some clarifications to word/letter spacing, defining normal == 0 btw
  228. # [02:35] <jdaggett> then you need to specify it in such a way that when inter-letter distribution is used, ligatures are disabled
  229. # [02:35] <fantasai> yep
  230. # [02:36] <fantasai> and another case is inter-ideograph
  231. # [02:36] <fantasai> you obviously don't want any ligatures between spaced-out ideographs
  232. # [02:36] <fantasai> but you'll still want them to apply inter-Latin, if the Latin isn't being spaced out
  233. # [02:36] <fantasai> which in most cases it won't
  234. # [02:36] <jdaggett> basically, any case that ends up not using the default advances set in the font
  235. # [02:36] <fantasai> since usually there's either spaces or ideographs on the line
  236. # [02:37] <fantasai> right
  237. # [02:37] * Quits: dbaron (dbaron@206.15.76.122) (Connection reset by peer)
  238. # [02:37] <fantasai> So I've tweaked the sentence from 2.1 to say
  239. # [02:37] <fantasai> "When the effective letter-spacing between two characters is not zero, user agents should not apply optional ligatures."
  240. # [02:37] <jdaggett> no
  241. # [02:38] <fantasai> zero means "use the defautl advance set in the font"
  242. # [02:38] <jdaggett> when the value of letter-spacing is non-zero or the justification alg is using inter-glyph spacing other than the default advances from the font, ligatures should be disabled
  243. # [02:40] <jdaggett> section 8 really oversimplifies how text is laid out
  244. # [02:41] <jdaggett> glyphs are laid out not just with advance widths
  245. # [02:41] <jdaggett> but also with context-specific kerning adjustments
  246. # [02:48] * Joins: shovenose (62d2e150@78.129.202.38)
  247. # [02:48] <shovenose> hello?
  248. # [02:48] * Joins: ShoveHost (ae6c6cc3@109.169.29.95)
  249. # [02:49] * Quits: shovenose (62d2e150@78.129.202.38) (Quit: http://www.mibbit.com ajax IRC Client)
  250. # [02:49] * Parts: ShoveHost (ae6c6cc3@109.169.29.95)
  251. # [02:53] <fantasai> jdaggett: I think it's intended to include those
  252. # [02:59] * Joins: dbaron (dbaron@206.15.76.122)
  253. # [03:23] <stearns> jdaggett: what about "when the optimal value of letter-spacing is non-zero or the justification alg…"
  254. # [03:25] <jdaggett> there's an interaction between properties here that needs to be made more explicit
  255. # [03:25] <stearns> jdaggett: FWIW, InDesign appears to use "when the optimal value of letter-spacing is non-zero or the justification lag results in letter spacing greater than the maximum, ligatures should be disabled"
  256. # [03:25] <jdaggett> basically i don't think any sort of calculated value should dictate ligatures on/off
  257. # [03:25] <jdaggett> so i would be very careful when comparing to indesign
  258. # [03:26] <stearns> jdaggett: sure, I don't expect UAs to follow InDesign's behavior
  259. # [03:26] <jdaggett> which is a single app that can do wonderful wild things under the covers without users knowing exactly what that is
  260. # [03:26] * Quits: dbaron (dbaron@206.15.76.122) (Connection reset by peer)
  261. # [03:26] <jdaggett> no, it's not that they shouldn't follow it, it's that there's an inherent difference between a model dictated by specs
  262. # [03:27] <jdaggett> vs. how a single application works
  263. # [03:27] <stearns> jdaggett: but it seems like a two-pass thing to me - try laying out the line with default spacing. If you can't, break the ligatures and try once more
  264. # [03:27] <jdaggett> no, no, no
  265. # [03:27] <jdaggett> i'll object up the wazoo if anyone seriously proposes such
  266. # [03:28] <stearns> so what should happen in fantasai's fi e l d example?
  267. # [03:29] * Joins: jet (jet@67.169.43.128)
  268. # [03:29] <jdaggett> first, no user agent, browser print or otherwise includes inter-glyph spacing as part of general-use justification
  269. # [03:30] <jdaggett> in the css case, the wording of the auto value of text-justify would appear to allow it
  270. # [03:30] <jdaggett> but i don't see when any ua would do that for the default case
  271. # [03:31] <jdaggett> any value of text-justify that explicitly uses non-default inter-glyph spacing should be disabling ligatures
  272. # [03:31] <jdaggett> no two-pass nonsense
  273. # [03:32] <jdaggett> if there are passes for a given ua, which the vague wording of text-justify allows
  274. # [03:32] <jdaggett> then it should be clear *before* each pass whether ligs are enabled or not
  275. # [03:32] <stearns> If you want the spec to specifically disallow the possibility, then I don't agree
  276. # [03:33] <jdaggett> i stand by what i wrote above
  277. # [03:33] <jdaggett> any value of text-justify that explicitly uses non-default inter-glyph spacing should be disabling ligatures
  278. # [03:33] <fantasai> they all do
  279. # [03:34] <fantasai> I think you need to carefully consider inter-ideograph
  280. # [03:35] <jdaggett> again, if a value of text-justify is specifying non-default spacing then ligs should be off
  281. # [03:36] <fantasai> again, that means all of them
  282. # [03:36] <fantasai> well, except 'none' :)
  283. # [03:36] <stearns> (except perhaps auto, which has a * in the priority table)
  284. # [03:36] <jdaggett> if all includes 'auto', which it appears it does, i will strongly object
  285. # [03:36] <fantasai> yep
  286. # [03:36] <fantasai> auto allows the UA to do *anything*
  287. # [03:36] <jdaggett> which is bullshit
  288. # [03:37] <fantasai> which includes inter-grapheme spacing
  289. # [03:37] <jdaggett> browsers should be using the spacing defined by a font
  290. # [03:37] <jdaggett> not making shit up as they go along
  291. # [03:37] <fantasai> of course they should
  292. # [03:37] <jdaggett> that's pure bullshit typography
  293. # [03:37] <fantasai> but justification changes that spacing
  294. # [03:37] <fantasai> that's what it does
  295. # [03:38] <jdaggett> what you're describing has never been implemented as the default behavior for text
  296. # [03:38] <jdaggett> nor should it ever be
  297. # [03:38] <jdaggett> text-justify: distribute, fine
  298. # [03:38] <jdaggett> but not the default
  299. # [03:38] <jdaggett> no, no, no
  300. # [03:38] <jdaggett> i'll sing that song forever
  301. # [03:39] <jdaggett> inter-glyph spacing is fundamentally font-specific
  302. # [03:39] <fantasai> I'd like to point out that justifying only at spaces doesn't work for CJK or SE Asian text
  303. # [03:39] <jdaggett> that's what type designers do all day
  304. # [03:40] <fantasai> and the fact that 'text-align: justify' has no effect on such texts in any UA that only stretches space characters should be considered a bug, not a feature
  305. # [03:43] <jdaggett> but for latin text there's no situation where inter-glyph spacing should be affected by text-align: justify
  306. # [03:44] <jdaggett> perioid
  307. # [03:44] <jdaggett> period
  308. # [03:44] <stearns> jdaggett: hat's insane!!!
  309. # [03:44] <jdaggett> er, no
  310. # [03:45] <jdaggett> that's what type designers are doing when they design a font
  311. # [03:45] <jdaggett> designing the glyphs *and* the spacing between them
  312. # [03:45] <stearns> (I used one more exclamation point than you did earlier!)
  313. # [03:46] <stearns> I agree that the default should be the decisions that the type designer made
  314. # [03:46] <jdaggett> right
  315. # [03:46] <jdaggett> but look at text-justify: auto
  316. # [03:46] <stearns> but someone using the font as a tool for their own design should be able to modify letter spacing
  317. # [03:46] <jdaggett> there's some skanky wiggle room there
  318. # [03:47] <jdaggett> naturally
  319. # [03:47] <jdaggett> but i think we should be specifying justification very carefully
  320. # [03:47] <stearns> text-align: justify should take the letter-spacing value(s) into account
  321. # [03:48] <jdaggett> text-align: justify with other css defaults should mean default inter-glyph spacing of latin characters
  322. # [03:48] <jdaggett> sure
  323. # [03:48] <stearns> which other css defaults?
  324. # [03:48] <jdaggett> the initial values of css props
  325. # [03:49] <stearns> letter-spacing in particular
  326. # [03:49] <jdaggett> letter-spacing: normal is the initial value
  327. # [03:49] <jdaggett> set it to something, it affects inter-glyph spacing and turns off ligatures
  328. # [03:49] <jdaggett> full-stop
  329. # [03:50] <jdaggett> no two-cycle nuttiness
  330. # [03:51] <jdaggett> and the defn of text-justify: auto seems like bullshit to me also
  331. # [03:51] <stearns> I could accept that as a current compromise, but I'd still like letter-spacing -10, 0, 10 to use ligatures unless letter spacing went above 110%
  332. # [03:51] <jdaggett> the behavior should be normative
  333. # [03:51] <jdaggett> not "ua's do whatever the heck the choose"
  334. # [03:52] <jdaggett> hmmm, commas? i hope not...
  335. # [03:52] <stearns> probably not commas - don't know the syntax
  336. # [03:52] <jdaggett> right, no commas, good
  337. # [03:52] <stearns> "whatever the heck they choose" could include a Knuth/Plass justifier, which would be awesome
  338. # [03:54] <jdaggett> the text-justify is defined as one big ball of non-interoperable poo
  339. # [03:55] <jdaggett> we should have text-justify: normal which reflects existing behavior
  340. # [03:55] <stearns> what's interoperable? I assert you'd never get to identical line breaks anyway, no matter how tight the spec
  341. # [03:56] <jdaggett> and then define text-justify: distribute and remove everything else
  342. # [03:57] <jdaggett> since justified text in CJK contexts is *not* the norm
  343. # [03:58] * Joins: SteveZ (chatzilla@50.82.139.9)
  344. # [03:59] <jdaggett> kashida requires extra help from the font system that no implementation is close to having
  345. # [04:19] * Quits: arno (arnog@192.150.10.201) (Quit: Leaving.)
  346. # [04:22] * Joins: dbaron (dbaron@70.36.140.99)
  347. # [04:41] * heycam is now known as heycam|away
  348. # [05:03] * Joins: miketaylr (miketaylr@70.112.101.224)
  349. # [05:19] * heycam|away is now known as heycam
  350. # [06:12] * Quits: miketaylr (miketaylr@70.112.101.224) (Quit: Leaving...)
  351. # [07:04] * Joins: miketaylr (miketaylr@70.112.101.224)
  352. # [07:48] * Quits: miketaylr (miketaylr@70.112.101.224) (Quit: Leaving...)
  353. # [09:15] * Joins: florianr (florianr@91.203.97.251)
  354. # [09:26] * Quits: dbaron (dbaron@70.36.140.99) (Ping timeout)
  355. # [09:38] * Joins: drublic (drublic@93.132.245.252)
  356. # [09:42] * Quits: jet (jet@67.169.43.128) (Quit: jet)
  357. # [10:13] * Quits: drublic (drublic@93.132.245.252) (Client exited)
  358. # [10:37] * heycam is now known as heycam|away
  359. # [10:37] * Joins: drublic (drublic@80.152.164.43)
  360. # [10:37] * heycam|away is now known as heycam
  361. # [10:38] * Quits: drublic (drublic@80.152.164.43) (Client exited)
  362. # [10:38] * Joins: drublic (drublic@80.152.164.43)
  363. # [11:14] * Joins: SimonSapin (simon@82.232.219.95)
  364. # [12:11] * Joins: leaverou (leaverou@203.167.141.74)
  365. # [12:50] * heycam is now known as heycam|away
  366. # [15:11] * Joins: lhnz (lhnz@94.31.26.5)
  367. # [16:07] * Quits: florianr (florianr@91.203.97.251) (Quit: Leaving.)
  368. # [16:16] * Joins: ksweeney (ksweeney@63.119.10.10)
  369. # [16:18] * Parts: ksweeney (ksweeney@63.119.10.10)
  370. # [17:15] * Joins: glenn (gadams@174.29.115.20)
  371. # [17:27] * Joins: krit (krit@192.150.10.201)
  372. # [17:40] * Joins: SimonSapin1 (simon@82.232.219.95)
  373. # [17:40] * Quits: SimonSapin (simon@82.232.219.95) (Connection reset by peer)
  374. # [17:47] * Joins: jet (jet@67.169.43.128)
  375. # [18:02] * Joins: jarek (jarek@79.186.13.163)
  376. # [18:10] * Quits: lhnz (lhnz@94.31.26.5) (Quit: Leaving)
  377. # [18:20] * Quits: jet (jet@67.169.43.128) (Quit: jet)
  378. # [18:30] * Joins: dbaron (dbaron@70.36.140.99)
  379. # [18:31] * Joins: arno (arnog@192.150.10.201)
  380. # [18:40] * Quits: drublic (drublic@80.152.164.43) (Client exited)
  381. # [19:01] * Joins: drublic (drublic@93.132.245.252)
  382. # [19:03] * Quits: jarek (jarek@79.186.13.163) (Ping timeout)
  383. # [19:12] * Joins: jarek (jarek@79.186.13.163)
  384. # [19:13] * Quits: jarek (jarek@79.186.13.163) (Quit: jarek)
  385. # [19:13] * Joins: jarek (jarek@79.186.13.163)
  386. # [19:14] * Joins: jarek_ (jarek@83.27.242.91)
  387. # [19:15] * Quits: jarek_ (jarek@83.27.242.91) (Quit: jarek_)
  388. # [19:15] * Joins: jarek_ (jarek@83.27.242.91)
  389. # [19:15] * Quits: jarek_ (jarek@83.27.242.91) (Quit: jarek_)
  390. # [19:15] * Joins: jarek_ (jarek@83.27.242.91)
  391. # [19:16] * Quits: jarek (jarek@79.186.13.163) (Ping timeout)
  392. # [19:16] * Quits: jarek_ (jarek@83.27.242.91) (Quit: jarek_)
  393. # [19:16] * Joins: jarek (jarek@83.27.242.91)
  394. # [19:24] * Quits: jarek (jarek@83.27.242.91) (Quit: jarek)
  395. # [19:24] * Joins: jarek (jarek@83.27.242.91)
  396. # [20:18] * Quits: SimonSapin1 (simon@82.232.219.95) (Ping timeout)
  397. # [20:24] * Quits: glenn (gadams@174.29.115.20) (Client exited)
  398. # [20:34] * Joins: glenn (gadams@174.29.115.20)
  399. # [20:34] <TabAtkins> http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Chtml%3E%0A%3Chead%3E%0A%3Cstyle%3E%0A.wrapper%20%7B%0A%20%20%20%20height%3A%2050px%3B%0A%20%20%20%20width%3A%20100px%3B%0A%20%20%20%20display%3A%20inline-block%3B%0A%20%20%20%20background%3A%20rgba(0%2C0%2C0%2C.2)%3B%0A%7D%0A.cell%20%7B%0A%20%20%20%20display%3A%20table-cell%3B%0A%20%20%20%20vertical-align%3A%20middle%3B%0A%20%20%20%20background%3A%20rgba(0%2C0%2C0%2C.2)%3B%0A%7
  400. # [20:35] <TabAtkins> <http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1688
  401. # [20:37] * Quits: jarek (jarek@83.27.242.91) (Quit: jarek)
  402. # [20:42] * Joins: jet (jet@206.15.76.122)
  403. # [20:53] * Joins: jarek (jarek@83.27.242.91)
  404. # [20:57] * Quits: glenn (gadams@174.29.115.20) (Client exited)
  405. # [21:04] * Quits: jarek (jarek@83.27.242.91) (Quit: jarek)
  406. # [21:05] * Quits: dbaron (dbaron@70.36.140.99) (Ping timeout)
  407. # [21:10] * Joins: glenn (gadams@174.29.115.20)
  408. # [21:21] * Quits: arno (arnog@192.150.10.201) (Quit: Leaving.)
  409. # [21:33] * Joins: arno (arnog@192.150.10.201)
  410. # [21:34] * Quits: glenn (gadams@174.29.115.20) (Client exited)
  411. # [22:09] * Joins: glenn (gadams@174.29.115.20)
  412. # [22:18] * Quits: Liam (liam@128.30.52.169) (Ping timeout)
  413. # [22:21] * Quits: glenn (gadams@174.29.115.20) (Client exited)
  414. # [22:28] * Joins: Liam (liam@128.30.52.169)
  415. # [22:35] * Quits: arno (arnog@192.150.10.201) (Quit: Leaving.)
  416. # [22:43] * Quits: Liam (liam@128.30.52.169) (Ping timeout)
  417. # [22:44] * Joins: dbaron (dbaron@206.15.76.122)
  418. # [22:45] * Joins: Liam (liam@128.30.52.169)
  419. # [22:59] * Joins: glenn (gadams@174.29.115.20)
  420. # [23:03] * Quits: glenn (gadams@174.29.115.20) (Client exited)
  421. # [23:03] * Joins: glenn (gadams@174.29.115.20)
  422. # [23:08] <TabAtkins> dbaron: I committed some APIs to the Conditional api chapter. Hope you don't mind! Feel free to tweak or revert as you wish.
  423. # [23:09] * Quits: krit (krit@192.150.10.201) (Quit: Leaving.)
  424. # [23:14] * Joins: krit (krit@192.150.10.201)
  425. # [23:17] * Quits: Liam (liam@128.30.52.169) (Ping timeout)
  426. # [23:22] * Quits: glenn (gadams@174.29.115.20) (Client exited)
  427. # [23:25] * Joins: arno (arnog@192.150.10.201)
  428. # [23:31] * Quits: drublic (drublic@93.132.245.252) (Client exited)
  429. # [23:31] * Joins: drublic (drublic@93.132.245.252)
  430. # Session Close: Wed Aug 01 00:00:00 2012

The end :)