web-platform-tests documentation

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 which 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:

  • github.com/web-platform-tests/wpt: the canonical location of the project’s source code revision history and the discussion forum for changes to the code

  • web-platform-tests.org: the documentation website; details how to set up the project, how to write tests, how to give and receive peer review, how to serve as an administrator, and more

  • wpt.live: a public deployment of the test suite, allowing anyone to run the tests by visiting from an Internet-enabled browser of their choice

  • wpt.fyi: an archive of test results collected from an array of web browsers on a regular basis

  • Real-time chat room: the wpt:matrix.org matrix channel; includes participants located around the world, but busiest during the European working day.

  • Mailing list: a public and low-traffic discussion list

If you’d like clarification about anything, don’t hesitate to ask in the chat room or on the mailing list.

Video Introduction (transcript)

See also this lecture from Web Engines Hackfest 2018 (30 minutes)


GitHub is used both for issue tracking and test submissions; we provide a limited introduction to both git and GitHub.

Pull Requests are automatically labeled based on the directory the files they change are in; there are also comments added automatically to notify a number of people: this list of people comes from META.yml files in those same directories and their parents (i.e., they work recursively: a/META.yml will get notified for a/foo.html and a/b/bar.html).

If you want to be notified about changes to tests in a directory, feel free to add yourself to the META.yml file!

Table of Contents