[svg] Make use-element-web-animations.html actually animate (#62697) The test never ran. Two separate problems, both silent. font-size is not a legal identifier in a JavaScript object literal, so the script was a SyntaxError and no animation was ever started. Quoting the key is not enough: a dashed keyframe key is not a valid keyframe property name either, and it is dropped in Chrome 155, Firefox 158 and Safari 26.4 and 27.0, all measured. That is already pinned by web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html, where 'font-size' sits in gNonAnimatableProps commented "Supported property that uses dashes", and that test is 73/73 in all four engines. So the key has to be fontSize. With that fixed the animation ran, but in Safari and Firefox it slid linearly from 120px to 80px, because steps(2, start) was on the empty first keyframe. Per the effect value algorithm, keyframes with no value for the target property are removed before interval selection, an implicit keyframe with no easing is synthesized at offset 0 in their place, and the transformed distance uses the easing of the first interval endpoint. So the author's easing could never reach font-size, and the rendering depended on when the screenshot was taken: it matched the reference only at exactly currentTime 50000. Moving the easing into the effect options makes the value flat across the whole first half in all three engines, so the timing dependence is gone everywhere. It also matches the sibling use-element-animations.html, where steps(2, start) is the animation-level timing function. The empty first keyframe is kept on purpose. The point of the test is that each element starts from its own computed font-size, 120px for the original and 40px for the use copy, so the start value must not be written down. Measured after the change, against use-element-transitions-ref.html: the original text animates to 100px in all three engines and its bounding box matches the reference, while the use copy stays at its inherited 40px. So the test now fails because the shadow tree instance gets no mirrored animation, which needs ShadowAnimation and is implemented nowhere, rather than because the script did not parse. It is still expected to fail in every engine, and no expectation metadata changes.
The web-platform-tests Project is a cross-browser test suite for the Web-platform stack. Writing tests in a way that allows them to be run in all browsers gives browser projects confidence that they are shipping software that is compatible with other implementations, and that later implementations will be compatible with their implementations. This in turn gives Web authors/developers confidence that they can actually rely on the Web platform to deliver on the promise of working across browsers and devices without needing extra layers of abstraction to paper over the gaps left by specification editors and implementors.
The most important sources of information and activity are:
wpt:matrix.org matrix channel; includes participants located around the world, but busiest during the European working day.If you'd like clarification about anything, don't hesitate to ask in the chat room or on the mailing list.
Clone or otherwise get https://github.com/web-platform-tests/wpt.
Note: because of the frequent creation and deletion of branches in this repo, it is recommended to “prune” stale branches when fetching updates, i.e. use git pull --prune (or git fetch -p && git merge).
See the documentation website and in particular the system setup for running tests locally.
The wpt command provides a frontend to a variety of tools for working with and running web-platform-tests. Some of the most useful commands are:
wpt serve - For starting the wpt http serverwpt run - For running tests in a browserwpt lint - For running the lint against all testswpt manifest - For updating or generating a MANIFEST.json test manifestwpt install - For installing the latest release of a browser or webdriver server on the local machine.wpt serve-wave - For starting the wpt http server and the WAVE test runner. For more details on how to use the WAVE test runner see the documentation.On Windows wpt commands must be prefixed with python or the path to the python binary (if python is not in your %PATH%).
python wpt [command]
Alternatively, you may also use Bash on Ubuntu on Windows in the Windows 10 Anniversary Update build, then access your windows partition from there to launch wpt commands.
Please make sure git and your text editor do not automatically convert line endings, as it will cause lint errors. For git, please set git config core.autocrlf false in your working tree.
The master branch is automatically synced to wpt.live and w3c-test.org.
Save the Web, Write Some Tests!
Absolutely everyone is welcome to contribute to test development. No test is too small or too simple, especially if it corresponds to something for which you've noted an interoperability bug in a browser.
The way to contribute is just as usual:
git checkout -b topic../wpt lint as described above.Use of LLMs to help author tests is generally acceptable, but every change must be attributable to a human who understands and can take responsibility for the proposed change.
Use of LLMs to participate in discussions is generally not acceptable; any LLM-generated content must either be from a bot account or contained inside a <blockquote> (for short contributions of at most one paragraph) or <details> element.
For full details see the Policy for LLM Use
If you spot an issue with a test and are not comfortable providing a pull request per above to fix it, please file a new issue. Thank you!