Skip to content

Commit 4e04c07

Browse files
committed
[css-writing-modes] Clarify implementation requirements for obsolete writing-mode keywords, add UA style rules that can help in some cases.
1 parent 2e4cd07 commit 4e04c07

1 file changed

Lines changed: 36 additions & 17 deletions

File tree

css-writing-modes/Overview.bs

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -886,14 +886,29 @@ Block Flow Direction: the 'writing-mode' property</h3>
886886
then its comptued <a>inner display type</a> becomes ''flow-root''. [[!CSS-DISPLAY-3]]
887887
</ul>
888888

889+
<div class="note" id="embedded-svg-inheritance">
890+
<p>As all other inherited CSS properties do,
891+
the 'writing-mode' property inherits to SVG elements inlined
892+
(rather than linked) into the source document.
893+
This could cause unintentional side effects when, for example,
894+
an SVG image designed only for horizontal flow was embedded into a vertical flow document.
895+
896+
<p>Authors can prevent this from happening by adding the following rule:
897+
<div class="example">
898+
<pre>svg { writing-mode: initial; }</pre>
899+
</div>
900+
</div>
901+
889902
<h4 id="svg-writing-mode">
890-
SVG1.1 'writing-mode' Values</h4>
903+
Obsolete SVG1.1 'writing-mode' Values</h4>
891904

892905
<p>SVG1.1 [[!SVG11]] defines some additional values: ''lr'',
893906
''lr-tb'', ''rl'', ''rl-tb'', ''tb'', and ''tb-rl''.
894907

895-
<p>These values are <em>deprecated</em> in any context except SVG1 documents.
896-
Implementations that wish to support these values in the context of CSS
908+
<p>These values are <em>obsolete</em> in any context except SVG1 documents
909+
and are therefore <em>optional</em> for non-SVG UAs.
910+
911+
<p>UAs that wish to support these values in the context of CSS
897912
must treat them as follows:
898913

899914
<table class="data">
@@ -915,27 +930,31 @@ SVG1.1 'writing-mode' Values</h4>
915930
specification. The additional ''tb-lr'' value of that revision is
916931
replaced by ''vertical-lr''.
917932

918-
<p>In SVG1.1, these values set the <dfn>inline progression direction</dfn>,
933+
<p>UAs that only need to support the SVG presentational attribute syntax,
934+
but not the CSS syntax, for these values
935+
may instead use UA style sheet rules to make the mapping:
936+
937+
<pre highlight=css>
938+
@namespace svg "http://www.w3.org/2000/svg";
939+
svg|*[writing-mode=lr], svg|*[writing-mode=lr-tb],
940+
svg|*[writing-mode=rl], svg|*[writing-mode=rl-tb] {
941+
writing-mode: horizontal-tbl; }
942+
svg|*[writing-mode=tb], svg|*[writing-mode=tb-rl] {
943+
writing-mode: vertical-rl; }
944+
</pre>
945+
946+
<div class="note">
947+
In SVG1.1, these values set the <dfn>inline progression direction</dfn>,
919948
in other words, the direction the current text position
920949
advances each time a glyph is added. This is a geometric process that
921950
happens <em>after</em> bidi reordering, and thus has no effect on the
922951
interpretation of the 'direction' property (which is independent of
923952
'writing-mode'). (See <a href="http://www.w3.org/TR/SVG/text.html#RelationshipWithBiDirectionality">Relationship
924953
with bidirectionality</a>. [[!SVG11]])
925-
<p class="note">There are varying interpretations
926-
on whether this process causes "writing-mode: rl" to merely shift the
927-
text string or reverse the order of all glyphs in the text.</p>
928-
929-
<div class="note" id="embedded-svg-inheritance">
930-
<p>As all other CSS properties do,
931-
the 'writing-mode' property inherits to embedeed inline SVG elements.
932-
This could cause unintentional side effects when, for example,
933-
an SVG designed only for horizontal flow was embedded inline into a vertical flow document.
934954

935-
<p>Authors can prevent this from happening by adding the following rule:
936-
<div class="example">
937-
<pre>svg { writing-mode: initial; }</pre>
938-
</div>
955+
There are varying interpretations
956+
on whether this process causes "writing-mode: rl" to merely shift the
957+
text string or reverse the order of all glyphs in the text.
939958
</div>
940959

941960
<h2 id="inline-alignment">

0 commit comments

Comments
 (0)