8000 [css-transitions] Add initial draft of Security Considerations, Priva… · w3c/csswg-drafts@bffc515 · GitHub
Skip to content

Commit bffc515

Browse files
committed
[css-transitions] Add initial draft of Security Considerations, Privacy Considerations, and Accessibility Considerations.
1 parent 400ef3c commit bffc515

2 files changed

Lines changed: 183 additions & 6 deletions

File tree

css-transitions/Overview.bs

Lines changed: 94 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ Abstract: CSS Transitions allows property changes in CSS values to occur smoothl
3232
Status Text: <strong>This document</strong> is expected to be relatively close to last call. While some issues raised have yet to be addressed, new features are extremely unlikely to be considered for this level. <p>The following behaviors are at risk: <ul><li><a href="#discrete-interpolation-at-risk">Interpolation in steps of property types that cannot be interpolated</a></li></ul>
3333
Ignored Terms: float
3434
Ignored Vars: x1, x2, y1, y2
35+
Link Defaults: css-transforms (property) transform
3536
</pre>
3637
<!-- FIXME: font-size and font-weight link defaults don't work -->
3738
<pre class="link-defaults">
@@ -1677,6 +1678,98 @@ url: https://html.spec.whatwg.org/multipage/infrastructure.html#concept-event-di
16771678
</tr>
16781679
</table> -->
16791680

1681+
Security Considerations {#security}
1682+
===================================
1683+
1684+
<em>This section is not normative.</em>
1685+
1686+
The security implications of this specification are limited
1687+
because it doesn't allow Web content to do things
1688+
that it could not do before.
1689+
Rather, it allows things that could previously be done with script
1690+
to be done declaratively,
1691+
and it ways that implementations can optimize (for frame rate and
1692+
CPU usage).
1693+
1694+
One of the major categories of optimizations
1695+
that implementations can make is implementing animation
1696+
of certain high-value properties (such as 'transform' and 'opacity')
1697+
run on a browser's compositor thread or process
1698+
without updating style or layout on the main Web content thread
1699+
unless up-to-date style data are needed.
1700+
This optimization often requires allocations of graphics memory
1701+
to display the contents of the element being animated.
1702+
Implementations should take care to ensure that Web content
1703+
cannot trigger unsafe out-of-memory handling
1704+
by using large numbers of animations
1705+
or animations on elements covering large areas
1706+
(where large may be defined in terms of pre-transform or post-transform size).
1707+
1708+
Privacy Considerations {#privacy}
1709+
=================================
1710+
1711+
<em>This section is not normative.</em>
1712+
1713+
As for security, the privacy considerations of this specification are limited
1714+
because it does not allow Web content to do things that it could not do before.
1715+
1716+
This specification may provide additional mechanisms that help to determine
1717+
characteristics of the user's hardware or software.
1718+
However, ability to determine performance characteristics of the user's
1719+
hardware or software is common to many Web technologies,
1720+
and this specification does not introduce new capabilities.
1721+
1722+
As described in [[#accessibility]],
1723+
implementations may provide mitigations to help users with disabilities.
1724+
These mitigations are likely to be detectable by Web content,
1725+
which means that users who would benefit from these mitigations
1726+
may face a tradeoff between keeping their disability private from
1727+
the Web content or benefiting from the mitigation.
1728+
1729+
Accessibility Considerations {#accessibility}
1730+
=============================================
1731+
1732+
<em>This section is not normative.</em>
1733+
1734+
Motion {#accessibility-motion}
1735+
------------------------------
1736+
1737+
This specification provides declarative mechanisms for animations
1738+
that previously needed to be done using script.
1739+
Providing a declarative mechanism has multiple effects:
1740+
it makes such animations easier to make and thus likely to be more common,
1741+
but it also makes it easier for user agents to modify those animations
1742+
if such modifications are needed to meet a user's accessibility needs.
1743+
1744+
Thus, users who are sensitive to movement,
1745+
or who require additional time to read or understand content,
1746+
may benefit from user agent features that allow
1747+
animations to be disabled or slowed down.
1748+
(But see [[#privacy]] for information on the privacy implications
1749+
of such mitigations.)
1750+
1751+
User agent implementors should be aware that Web content
1752+
may depend on the firing of <a href="#transition-events">transition events</a>,
1753+
so implementations of such mitigations may wish to fire transition events
1754+
even if the transitions were not run as continuous animations.
1755+
However, it is probably poor practice for Web content to depend on
1756+
such events to function correctly.
1757+
1758+
Cascade {#accessibility-cascade}
1759+
--------------------------------
1760+
1761+
The CSS <a>cascade</a> is a general mechanism in CSS
1762+
that allows user needs to interact with author styles.
1763+
This specification interacts with the cascade,
1764+
but since it only allows animation between values
1765+
that result from the existing cascade rules,
1766+
it does not interfere with user's ability to force
1767+
CSS properties to have particular values.
1768+
1769+
The cascade also allows users to disable transitions entirely
1770+
by overriding the transition properties.
1771+
1772+
16801773
<h2 id="changes">Changes since Working Draft of 19 November 2013</h2>
16811774

16821775
<p>The following are the substantive changes made since the
@@ -1689,7 +1782,7 @@ dated 19 November 2013</a>:</p>
16891782
<li>Completion of transitions is defined somewhat more precisely.</li>
16901783
<li>The transitionend event is no longer cancelable. This is since it has no default action, so canceling it would have no meaning. It also matches the animation events.</li>
16911784
<li>The interpolation of ''shadow/inset'' values on shadow lists is no longer backwards.</li>
1692-
<li>A [[#conformance]] section and [[#idl-index]] have been added</li>
1785+
<li>A [[#conformance]] section, [[#security]] section, [[#privacy]] section, [[#accessibility]] section, and [[#idl-index]] have been added</li>
16931786
<li>The identifiers accepted by 'transition-property' are defined in terms of <<custom-ident>>.</li>
16941787
<li>Define a little bit more about when changes to computed values happen, by saying at least that implementations must not update the effects of computed values without actually updating computed values.</li>
16951788
</ul>

css-transitions/Overview.html

Lines changed: 89 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,16 @@ <h2 class="no-num no-toc no-ref" id="contents">Table of Contents</h2>
123123
<li><a href="#animatable-css"><span class="secno">8.1</span> <span class="content"><span> Properties from CSS </span></span></a>
124124
<li><a href="#animatable-svg"><span class="secno">8.2</span> <span class="content"><span> Properties from SVG </span></span></a>
125125
</ol>
126-
<li><a href="#changes"><span class="secno">9</span> <span class="content">Changes since Working Draft of 19 November 2013</span></a>
127-
<li><a href="#acknowledgments"><span class="secno">10</span> <span class="content">Acknowledgments</span></a>
126+
<li><a href="#security"><span class="secno">9</span> <span class="content">Security Considerations</span></a>
127+
<li><a href="#privacy"><span class="secno">10</span> <span class="content">Privacy Considerations</span></a>
128+
<li>
129+
<a href="#accessibility"><span class="secno">11</span> <span class="content">Accessibility Considerations</span></a>
130+
<ol class="toc">
131+
<li><a href="#accessibility-motion"><span class="secno">11.1</span> <span class="content">Motion</span></a>
132+
<li><a href="#accessibility-cascade"><span class="secno">11.2</span> <span class="content">Cascade</span></a>
133+
</ol>
134+
<li><a href="#changes"><span class="secno">12</span> <span class="content">Changes since Working Draft of 19 November 2013</span></a>
135+
<li><a href="#acknowledgments"><span class="secno">13</span> <span class="content">Acknowledgments</span></a>
128136
<li>
129137
<a href="#conformance"><span class="secno"></span> <span class="content"> Conformance</span></a>
130138
<ol class="toc">
@@ -1265,7 +1273,75 @@ <h3 class="heading settled" data-level="8.1" id="animatable-css"><span class="se
12651273
<h3 class="heading settled" data-level="8.2" id="animatable-svg"><span class="secno">8.2. </span><span class="content"><span id="properties-from-svg-"> Properties from SVG </span></span 5D59 ><a class="self-link" href="#animatable-svg"></a></h3>
12661274
<p> All properties defined as animatable in the SVG specification, provided
12671275
they are one of the property types listed above. </p>
1268-
<h2 class="heading settled" data-level="9" id="changes"><span class="secno">9. </span><span class="content">Changes since Working Draft of 19 November 2013</span><a class="self-link" href="#changes"></a></h2>
1276+
<h2 class="heading settled" data-level="9" id="security"><span class="secno">9. </span><span class="content">Security Considerations</span><a class="self-link" href="#security"></a></h2>
1277+
<p><em>This section is not normative.</em></p>
1278+
<p>The security implications of this specification are limited
1279+
because it doesn’t allow Web content to do things
1280+
that it could not do before.
1281+
Rather, it allows things that could previously be done with script
1282+
to be done declaratively,
1283+
and it ways that implementations can optimize (for frame rate and
1284+
CPU usage).</p>
1285+
<p>One of the major categories of optimizations
1286+
that implementations can make is implementing animation
1287+
of certain high-value properties (such as <a class="property" data-link-type="propdesc" href="https://drafts.csswg.org/css-transforms-1/#propdef-transform">transform</a> and <a class="property" data-link-type="propdesc" href="https://drafts.csswg.org/css-color-3/#opacity">opacity</a>)
1288+
run on a browser’s compositor thread or process
1289+
without updating style or layout on the main Web content thread
1290+
unless up-to-date style data are needed.
1291+
This optimization often requires allocations of graphics memory
1292+
to display the contents of the element being animated.
1293+
Implementations should take care to ensure that Web content
1294+
cannot trigger unsafe out-of-memory handling
1295+
by using large numbers of animations
1296+
or animations on elements covering large areas
1297+
(where large may be defined in terms of pre-transform or post-transform size).</p>
1298+
<h2 class="heading settled" data-level="10" id="privacy"><span class="secno">10. </span><span class="content">Privacy Considerations</span><a class="self-link" href="#privacy"></a></h2>
1299+
<p><em>This section is not normative.</em></p>
1300+
<p>As for security, the privacy considerations of this specification are limited
1301+
because it does not allow Web content to do things that it could not do before.</p>
1302+
<p>This specification may provide additional mechanisms that help to determine
1303+
characteristics of the user’s hardware or software.
1304+
However, ability to determine performance characteristics of the user’s
1305+
hardware or software is common to many Web technologies,
1306+
and this specification does not introduce new capabilities.</p>
1307+
<p>As described in <a href="#accessibility">§11 Accessibility Considerations</a>,
1308+
implementations may provide mitigations to help users with disabilities.
1309+
These mitigations are likely to be detectable by Web content,
1310+
which means that users who would benefit from these mitigations
1311+
may face a tradeoff between keeping their disability private from
1312+
the Web content or benefiting from the mitigation.</p>
1313+
<h2 class="heading settled" data-level="11" id="accessibility"><span class="secno">11. </span><span class="content">Accessibility Considerations</span><a class="self-link" href="#accessibility"></a></h2>
1314+
<p><em>This section is not normative.</em></p>
1315+
<h3 class="heading settled" data-level="11.1" id="accessibility-motion"><span class="secno">11.1. </span><span class="content">Motion</span><a class="self-link" href="#accessibility-motion"></a></h3>
1316+
<p>This specification provides declarative mechanisms for animations
1317+
that previously needed to be done using script.
1318+
Providing a declarative mechanism has multiple effects:
1319+
it makes such animations easier to make and thus likely to be more common,
1320+
but it also makes it easier for user agents to modify those animations
1321+
if such modifications are needed to meet a user’s accessibility needs.</p>
1322+
<p>Thus, users who are sensitive to movement,
1323+
or who require additional time to read or understand content,
1324+
may benefit from user agent features that allow
1325+
animations to be disabled or slowed down.
1326+
(But see <a href="#privacy">§10 Privacy Considerations</a> for information on the privacy implications
1327+
of such mitigations.)</p>
1328+
<p>User agent implementors should be aware that Web content
1329+
may depend on the firing of <a href="#transition-events">transition events</a>,
1330+
so implementations of such mitigations may wish to fire transition events
1331+
even if the transitions were not run as continuous animations.
1332+
However, it is probably poor practice for Web content to depend on
1333+
such events to function correctly.</p>
1334+
<h3 class="heading settled" data-level="11.2" id="accessibility-cascade"><span class="secno">11.2. </span><span class="content">Cascade</span><a class="self-link" href="#accessibility-cascade"></a></h3>
1335+
<p>The CSS <a data-link-type="dfn" href="https://drafts.csswg.org/css-cascade-4/#cascade">cascade</a> is a general mechanism in CSS
1336+
that allows user needs to interact with author styles.
1337+
This specification interacts with the cascade,
1338+
but since it only allows animation between values
1339+
that result from the existing cascade rules,
1340+
it does not interfere with user’s ability to force
1341+
CSS properties to have particular values.</p>
1342+
<p>The cascade also allows users to disable transitions entirely
1343+
by overriding the transition properties.</p>
1344+
<h2 class="heading settled" data-level="12" id="changes"><span class="secno">12. </span><span class="content">Changes since Working Draft of 19 November 2013</span><a class="self-link" href="#changes"></a></h2>
12691345
<p>The following are the substantive changes made since the <a href="https://www.w3.org/TR/2013/WD-css3-transitions-20131119/">Working Draft
12701346
dated 19 November 2013</a>:</p>
12711347
<ul>
@@ -1274,7 +1350,7 @@ <h2 class="heading settled" data-level="9" id="changes"><span class="secno">9. <
12741350
<li>Completion of transitions is defined somewhat more precisely.
12751351
<li>The transitionend event is no longer cancelable. This is since it has no default action, so canceling it would have no meaning. It also matches the animation events.
12761352
<li>The interpolation of <a class="css" data-link-type="maybe" href="https://drafts.csswg.org/css-backgrounds-3/#shadow-inset">inset</a> values on shadow lists is no longer backwards.
1277-
<li>A <a href="#conformance">Conformance</a> section and <a href="#idl-index">IDL Index</a> have been added
1353+
<li>A <a href="#conformance">Conformance</a> section, <a href="#security">§9 Security Considerations</a> section, <a href="#privacy">§10 Privacy Considerations</a> section, <a href="#accessibility">§11 Accessibility Considerations</a> section, and <a href="#idl-index">IDL Index</a> have been added
12781354
<li>The identifiers accepted by <a class="property" data-link-type="propdesc" href="#propdef-transition-property">transition-property</a> are defined in terms of <a class="production css" data-link-type="type" href="https://drafts.csswg.org/css-values-3/#identifier-value">&lt;custom-ident></a>.
12791355
<li>Define a little bit more about when changes to computed values happen, by saying at least that implementations must not update the effects of computed values without actually updating computed values.
12801356
</ul>
@@ -1285,7 +1361,7 @@ <h2 class="heading settled" data-level="9" id="changes"><span class="secno">9. <
12851361
<li>see the <a href="https://www.w3.org/TR/2013/WD-css3-transitions-20130212/ChangeLog">the ChangeLog</a> for changes in previous working drafts
12861362
<li>For more details on these changes, see the version control change logs, which are split in three parts because of file renaming: <a href="https://hg.csswg.org/drafts/log/tip/css-transitions/Overview.bs">change log since 2015 January 26</a>, <a href="https://hg.csswg.org/drafts/log/tip/css-transitions/Overview.src.html">change log from 2013 March 28 to 2015 January 26</a>, <a href="https://hg.csswg.org/drafts/log/tip/css3-transitions/Overview.src.html">change log before 2013 March 28</a>.
12871363
</ol>
1288-
<h2 class="heading settled" data-level="10" id="acknowledgments"><span class="secno">10. </span><span class="content">Acknowledgments</span><a class="self-link" href="#acknowledgments"></a></h2>
1364+
<h2 class="heading settled" data-level="13" id="acknowledgments"><span class="secno">13. </span><span class="content">Acknowledgments</span><a class="self-link" href="#acknowledgments"></a></h2>
12891365
<p>Thanks especially to the feedback from
12901366
Tab Atkins,
12911367
Carine Bournez,
@@ -1462,6 +1538,7 @@ <h3 class="no-num heading settled" id="index-defined-elsewhere"><span class="con
14621538
<a data-link-type="biblio" href="#biblio-css-cascade-4">[css-cascade-4]</a> defines the following terms:
14631539
<ul>
14641540
<li><a href="https://drafts.csswg.org/css-cascade-4/#propdef-all">all</a>
1541+
<li><a href="https://drafts.csswg.org/css-cascade-4/#cascade">cascade</a>
14651542
<li><a href="https://drafts.csswg.org/css-cascade-4/#computed-value">computed value</a>
14661543
<li><a href="https://drafts.csswg.org/css-cascade-4/#valdef-all-inherit">inherit</a>
14671544
<li><a href="https://drafts.csswg.org/css-cascade-4/#valdef-all-initial">initial</a>
@@ -1477,6 +1554,11 @@ <h3 class="no-num heading settled" id="index-defined-elsewhere"><span class="con
14771554
<ul>
14781555
<li><a href="https://drafts.csswg.org/css-text-decor-3/#propdef-text-shadow">text-shadow</a>
14791556
</ul>
1557+
<li>
1558+
<a data-link-type="biblio" href="#biblio-css-transforms-1">[css-transforms-1]</a> defines the following terms:
1559+
<ul>
1560+
<li><a href="https://drafts.csswg.org/css-transforms-1/#propdef-transform">transform</a>
1561+
</ul>
14801562
<li>
14811563
<a data-link-type="biblio" href="#biblio-css-values-3">[css-values]</a> defines the following terms:
14821564
<ul>
@@ -1565,6 +1647,8 @@ <h3 class="no-num heading settled" id="normative"><span class="content">Normativ
15651647
<dd>CSS Color Module Level 3 URL: <a href="https://www.w3.org/TR/css3-color/">https://www.w3.org/TR/css3-color/</a>
15661648
<dt id="biblio-css-text-decor-3"><a class="self-link" href="#biblio-css-text-decor-3"></a>[CSS-TEXT-DECOR-3]
15671649
<dd>Elika Etemad; Koji Ishii. <a href="http://www.w3.org/TR/css-text-decor-3/">CSS Text Decoration Module Level 3</a>. 1 August 2013. CR. URL: <a href="http://www.w3.org/TR/css-text-decor-3/">http://www.w3.org/TR/css-text-decor-3/</a>
1650+
<dt id="biblio-css-transforms-1"><a class="self-link" href="#biblio-css-transforms-1"></a>[CSS-TRANSFORMS-1]
1651+
<dd>Simon Fraser; et al. <a href="http://www.w3.org/TR/css-transforms-1/">CSS Transforms Module Level 1</a>. 26 November 2013. WD. URL: <a href="http://www.w3.org/TR/css-transforms-1/">http://www.w3.org/TR/css-transforms-1/</a>
15681652
<dt id="biblio-css-values"><a class="self-link" href="#biblio-css-values"></a>[CSS-VALUES]
15691653
<dd>Tab Atkins Jr.; Elika Etemad. <a href="http://www.w3.org/TR/css-values/">CSS Values and Units Module Level 3</a>. 11 June 2015. CR. URL: <a href="http://www.w3.org/TR/css-values/">http://www.w3.org/TR/css-values/</a>
15701654
<dt id="biblio-css3-animations"><a class="self-link" href="#biblio-css3-animations"></a>[CSS3-ANIMATIONS]

0 commit comments

Comments
 (0)