- From: Simon Pieters <simonp@opera.com>
- Date: Wed, 18 Feb 2015 15:29:02 +0400
- To: "Florian Rivoal" <florian@rivoal.net>, fantasai <fantasai.lists@inkedblade.net>
- Cc: www-style@w3.org, "L. David Baron" <dbaron@dbaron.org>
On Wed, 11 Feb 2015 08:22:27 +0400, fantasai <fantasai.lists@inkedblade.net> wrote: > On 01/15/2015 07:55 AM, Florian Rivoal wrote: >> >>> On 15 Jan 2015, at 09:36, Simon Pieters <simonp@opera.com> wrote: >>> >>> In IE/Chrome/Opera on Windows at least, the direction of the viewport >>> determines which side the scrollbar is. So not propagating from body >>> would at least flip the scrollbar to the wrong side. >>> >>> [...] >>> >>>> Florian: In general, I think we should avoid making <body> special >>>> unless there's compat. >>> >>> Agreed as a general rule, but in this case browsers have already >>> converged on making <body> special and there is Web content that would >>> be affected by not making it special (see above). >> >> Given that the browser convergence is being relied on by content, I >> agree that propagating from <body> when the document language is html >> is the saner thing to do here. > > Browsers are quite inconsistent (amongst each other and within > themselves) > on exactly what aspects of 'direction' propagation is actually > propagated. > (Since 'direction' controls a number of different effects in CSS.) Right. > So we have several problems: > > a) browsers have very inconsistent direction propagation from body to > html It's really to the viewport AIUI. > b) some content (~0.25%) exists that depends on propagation from body > to html > c) specs (and sanity) prefer not propagating from body to html > > There are three options for what to do: > > 1) require 'direction' propagation from body to html, fix browsers I'll take this to mean "specify the sane/consistent approach of what browsers do today, fix remaining bugs in browsers". > 2) forbid 'direction' propagation from body to html, fix browsers This is a non-option. > 3) require dir=rtl propagation from body to html, fix browsers See below. > I think #3 makes the most sense because > > a) Propagating at the HTML layer removes all of the CSS complexities, > making it easier to fix all the bugs and keep them fixed. Only one > lookup needs to happen. Maybe it introduces other bugs instead? > b) Content that misplaces dir=rtl is handled, and improved because now > the <head> is also RTL. This is not relevant outside test cases. > c) simpler model for specs and sanity > > Wrt compat concerns of only handling dir=rtl and not 'direction: rtl': > > Greg Whitworth found on a database of 1.3 million pages only 0.03% use > 'direction: rtl' at all. The number setting that on <body> is a subset > of all that, and the number setting it on <body> and not <html> and > relying on that making the root behave as RTL is a subset of *that*. Did that database include external stylesheets? In httparchive I get a different figure. Looking for pages that set direction: rtl or writing-mode: vertical-* on <body>, either in style="", or in a stylesheet: SELECT page, COUNT(*) as num FROM [httparchive:runs.2014_08_15_requests_body] WHERE REGEXP_MATCH(LOWER(body), r'<body\s[^>]*style\s*=\s*["\'][^"\']*(direction\s*:\s*rtl|writing-mode\s*:\s*vertical)') OR REGEXP_MATCH(LOWER(body), r'body\s*\{[^}]*(direction\s*:\s*rtl|writing-mode\s*:\s*vertical-)') GROUP BY page ORDER BY num desc; 4222 pages out of 130k pages; ~3.25%. This is much higher than <body dir=rtl> (~0.25%). (The sets might be overlapping, but even if they overlap perfectly it still leaves ~3.00% with only direction/writing-mode.) > So I think it's safe to not worry about pages that (against all W3C > recommendations) use 'direction' on <body>, and just handle <body > dir=rtl>. I disagree. The httparchive data suggests direction on body is more common than <body dir>. I think we should specify (1), write tests and fix bugs in browsers. > TL;DR > > Proposal is to forbid 'direction' and 'writing-mode' propagation from > <body> > to <html> and instead require dir=rtl propagation from <body> to > <html>. > Simpler model with less potential for bugs, and solves web compat > issues. > > ~fantasai -- Simon Pieters Opera Software
Received on Wednesday, 18 February 2015 14:29:35 UTC