<pre class='metadata'>
Title: Selectors Level 5
Group: CSSWG
Shortname: selectors
Level: 5
Status: ED
Prepare for TR: no
!Delta Spec: yes
Work Status: Exploring
ED: https://drafts.csswg.org/selectors-5/
TR: https://www.w3.org/TR/selectors-5/
Editor: Elika J. Etemad / fantasai, Apple, http://fantasai.inkedblade.net/contact, w3cid 35400
Editor: Tab Atkins Jr., Google, http://xanthir.com/contact/, w3cid 42199
Abstract: <a>Selectors</a> are patterns that match against elements in a tree, and as such form one of several technologies that can be used to select nodes in a document. Selectors have been optimized for use with HTML and XML, and are designed to be usable in performance-critical code. They are a core component of <abbr title="Cascading Style Sheets">CSS</abbr> (Cascading Style Sheets), which uses Selectors to bind style properties to elements in the document.
Abstract: Selectors Level 5 describes the selectors that already exist in [[!selectors-4]], and further introduces new selectors for CSS and other languages that may need them.
WPT Path Prefix: css/selectors/
WPT Display: closed
</pre>

<pre class="link-defaults">
spec:html; type:dfn;
	text:heading level
	text:states set
spec:selectors-4; type:dfn;
	text:host language
	text:selector
	text:type selector
</pre>

<h2 id="intro">
Introduction</h2>

	ISSUE: <strong>This is a diff spec against
	<a href="https://www.w3.org/TR/selectors-4/">Selectors Level 4</a>.</strong>

<h3 id="placement">
Module Interactions</h3>

	This module extends
	the set of selectors defined for CSS in [[selectors-4]].

<h2 id="location">
Location Pseudo-classes</h2>

<h3 id="local-pseudo">
The Local Link Pseudo-class '':local-link''</h3>

	The <dfn id='local-link-pseudo'>:local-link</dfn> pseudo-class allows authors to style
	[[selectors-4#the-any-link-pseudo|hyperlinks]]
	based on the users current location within a site and to
	differentiate site-internal versus site-external links.

	The (non-functional) '':local-link'' pseudo-class represents an element that is
	the source anchor of a hyperlink whose target's absolute URL
	matches the element's own document URL.
	Any fragment identifiers are stripped before matching the document's URL against the link's URL;
	otherwise all portions of the URL are considered.

	<div class="example">
		For example, the following rule prevents links targeting the
		current page from being underlined when they are part of the
		navigation list:

		<pre>nav :local-link { text-decoration: none; } </pre>
	</div>

	As a functional pseudo-class,
	'':local-link()'' can also accept a non-negative integer as its sole argument,
	which, if the document's URL belongs to a hierarchical scheme,
	indicates the number of path levels to match:

	<ul>
		<li>'':local-link(0)'' represents a link element whose target is in the same origin as the document's URL
		<li>'':local-link(1)'' represents a link element whose target has the same origin and first path segment
		<li>'':local-link(2)'' represents a link element whose target has the same origin, first, and second path segments
		<li>etc.
	</ul>

	<div class="example">
		The following example styles all site-external links with a dashed
			underline.

		<pre>:not(:local-link(0)) { text-decoration-style: dashed; } </pre>
	</div>

	Path segments are portions of the URL's path that are separated by forward slashes (/).
	If a segment is missing from the document's URL,
	a pseudo-class requiring that segment to match does not match anything.

	<div class="example">
		So, given the links:

		<ol>
			<li><code>&lt;a href="http://www.example.com">Home&lt;/a></code>
			<li><code>&lt;a href="http://www.example.com/2011">2011&lt;/a></code>
			<li><code>&lt;a href="http://www.example.com/2011/03">March&lt;/a></code>
			<li><code>&lt;a href="http://www.example.com/2011/03/">March&lt;/a></code>
			<li><code>&lt;a href="http://www.example.com/2011/03/21">21 March&lt;/a></code>
			<li><code>&lt;a href="https://www.example.com/2011/03/">March&lt;/a></code>
			<li><code>&lt;a href="http://example.com/2011/03/">March&lt;/a></code>
		</ol>

		and the styles:

		<ol type=A>
			 <li><code>a:local-link {...}</code>
			 <li><code>a:local-link(0) {...}</code>
			 <li><code>a:local-link(1) {...}</code>
			 <li><code>a:local-link(2) {...}</code>
			 <li><code>a:local-link(3) {...}</code>
			 <li><code>a:local-link(4) {...}</code>
		</ol>

		If the document's URL is <code>http://www.example.com/2011/03/</code>:

		<ol>
			<li>Link 1 would receive Style B
			<li>Link 2 would receive Styles B and C
			<li>Link 3 would receive Styles B, C, and D
			<li>Link 4 would also receive Styles A, B, C, D, and E
			<li>Link 5 would receive Styles B, C, and D
			<li>Link 6 would remain unstyled
			<li>Link 7 would remain unstyled
			<li>Style F would not be applied to anything
		</ol>
	</div>


		The "origin" of the URL is defined by <a href="http://tools.ietf.org/html/rfc6454#section-4">RFC 6454, Section 4</a>.
		The username, password, query string, and fragment portions of the URL are not considered
		when matching against '':local-link(<var ignore>n</var>)''.
		If the document's URL does not belong to a hierarchical scheme,
		the functional pseudo-class matches nothing.

	<p class="issue">
		It's clear that, if the document URL has at least N segments,
		then '':local-link(N)'' only matches links whose URL has at least N segments.
		(This lets you assign consistent semantics to :local-link so that,
		for example, :local-link(2) means a "within-repo" link on GitHub.)
		What about if the document url has less than N segments,
		and the link is same-page?
		Should "null segments" count as matching, or not?

<h2 id="useraction-pseudos">
User Action Pseudo-classes</h2>

<h3 id="interest-pseudos">
The Interest Pseudo-classes: '':interest-source'' and '':interest-target''</h3>

	A common UI feature is the ability for the user to "show interest" in certain elements
	(an <dfn export>interest source</dfn>),
	and the UI to respond to that interest
	by showing additional information in another element
	(the <dfn export>interest target</dfn>),
	typically a popup.
	For example, hovering a username on a page
	might bring up an information card for that user;
	or long-pressing a link
	might bring up a preview of the link's destination.
	Whenever this happens, the first element

	Note: Exactly what elements are capable of being [=interest sources=],
	how they're linked to [=interest targets=],
	and how "interest" is shown
	are all [=host language=]-defined.
	In HTML, for example,
	this is done with the <{html-global/interestfor}> attribute
	to indicate an element capable of "showing interest"
	(being an [=interest source=],
	and that attribute points to another element
	intended to show the additional information
	(the associated [=interest target=])
	(usually a <{html-global/popover}> element).

	The <dfn>:interest-source</dfn> pseudo-class
	applies to an [=interest source=] element that the user is currently "showing interest" in,
	and the <dfn>:interest-target</dfn> pseudo-class
	applies to the associated [=interest target=]
	of an element matching '':interest-source''.

	Note: '':interest-source'' only matches an [=interest source=]
	the user is <em>currently</em> interested in,
	not any element that can <em>potentially</em> have interest shown in it.
	In HTML, for example,
	just having the <{html-global/interestfor}> attribute
	does not make an element match this pseudo-class;
	the user has to actually indicate interest in it too.
	Similarly, '':interest-target'' only matches an [=interest target=]
	that is linked to an element the user is <em>currently</em> interested in,
	not any element pointed to by an <{html-global/interestfor}> attribute.

<h2 id="input-pseudos">
The Input Pseudo-classes</h2>

<h3 id="ui-validity">
Input Value-checking</h3>

<h4 id="blank">
The Empty-Value Pseudo-class: '':blank''</h4>

	The <dfn id="blank-pseudo">:blank</dfn> pseudo-class
	applies to user-input elements whose input value is empty
	(consists of the empty string or otherwise null input).

	<div class="note">
		Roughly speaking, if a human looked at a printout of the form
		and would say it’s blank,
		it matches '':blank''.

		A rule of thumb for interpreting '':blank'' on form controls is:

		* If the control always submits,
			and would do so with an empty string, it matches '':blank''.
			(Such as HTML’s <code>&lt;input type=text></code> when its value is empty.)
		* If it sometimes submits, and is set to not submit, it matches '':blank''.
			(Such as HTML’s <code>&lt;input type=checkbox></code> when not checked.)
		* If it's an “action button”
			(rather than a “toggle button” that represents a state)
			such as <code>&lt;button></code>, <code>&lt;input type=submit></code>, etc.,
			it never matches '':blank''.

		Host languages can specify more precise rules
		for when form controls match '':blank''.
	</div>

<h2 id="time-pseudos">
Time-dimensional Pseudo-classes</h2>

	These pseudo-classes classify elements with respect to the
	currently-displayed or active position in some timeline, such as
	during speech rendering of a document, or during the display of
	a video using WebVTT to render subtitles.

	CSS does not define this timeline;
	the host language must do so.
	If there is no timeline defined for an element,
	these pseudo-classes must not match the element.

	Note: Ancestors of a '':current'' element are also '':current'',
	but ancestors of a '':past'' or '':future'' element are not necessarily '':past'' or '':future'' as well.
	A given element matches at most one of '':current'', '':past'', or '':future''.

<h3 id="the-current-pseudo">
The Current-element Pseudo-class: '':current''</h3>

	The <dfn id='current-pseudo'>:current</dfn> pseudo-class represents the
	element, or an ancestor of the element, that is currently being displayed.

	Its alternate form <dfn>:current()</dfn>
	takes a list of <a>compound selectors</a> as its argument:
	it represents the '':current'' element that matches the argument
	or, if that does not match,
	the innermost ancestor of the '':current'' element that does.
	(If neither the '':current'' element nor its ancestors match the argument, then the selector does not represent anything.)

	<div class="example">
		For example, the following rule will highlight whichever paragraph
		or list item is being read aloud in a speech rendering of the document:

		<pre>
		:current(p, li, dt, dd) {
		  background: yellow;
		}
		</pre>
	</div>

<h3 id="the-past-pseudo">
The Past-element Pseudo-class: '':past''</h3>

	The <dfn id='past-pseudo'>:past</dfn> pseudo-class represents any element that is
	defined to occur entirely prior to a '':current'' element.
	For example, the WebVTT spec defines the '':past'' pseudo-class <a href="https://w3c.github.io/webvtt/#the-past-and-future-pseudo-classes">relative to the current playback position of a media element</a>.
	If a time-based order of elements is not defined by the document language,
	then this represents any element that is a (possibly indirect) previous
	sibling of a '':current'' element.

<h3 id="the-future-pseudo">
The Future-element Pseudo-class: '':future''</h3>

	The <dfn id='future-pseudo'>:future</dfn> pseudo-class represents any element that is
	defined to occur entirely after a '':current'' element.
	For example, the WebVTT spec defines the '':future'' pseudo-class <a href="https://w3c.github.io/webvtt/#the-past-and-future-pseudo-classes">relative to the current playback position of a media element</a>.
	If a time-based order of elements is not defined by the document language,
	then this represents any element that is a (possibly indirect) next
	sibling of a '':current'' element.

<h2 id="custom-state">
Exposing custom state: the '':state()'' pseudo-class</h2>

	The <dfn selector id="state-pseudo">:state( <<ident>> )</dfn> pseudo-class
	matches [=custom elements=]
	whose [=states set=] contains a string
	that [=string/is=] the selector's argument's value.

	<wpt>
		parsing/parse-state.html
	</wpt>

	<!-- Using <<ident>>, rather than <<custom-ident>>,
	     to avoid excluding the CSS-wide keywords. -->

	Note: The "[=string/is=]" matching behavior compares strings by codepoint;
	notably, it's case-sensitive.
	So if "foo" is in the [=states set=], '':state(FOO)'' will <em>not</em> match.

	The exact matching behavior of '':state()'' pseudo-class
	is defined by the host language.
	For clarity, the concepts explaining this pseudo-class
	link to the HTML definition;
	see <a href="https://html.spec.whatwg.org/multipage/custom-elements.html#custom-state-pseudo-class">HTML's definition</a> for more detail.
	Other host languages must define how this pseudo-class matches.

<h2 id="headings">
Heading Structures: the heading pseudo-classes '':heading'', and '':heading()''</h2>

	The (non-functional) <dfn id='heading-pseudo'>:heading</dfn> pseudo-class
	matches an element which has a <a>heading level</a>, with respect to the
	semantics defined by the document language (e.g. [[HTML5]]).

	The [=specificity=] of '':heading'' is that of a class.

	<div class="example">
		For example, the following sheet contains a rule applying to all heading
		elements in the current page:

		<pre>:heading { text-decoration: underline; }</pre>
	</div>

	As a functional pseudo-class,
	<dfn id='heading-functional-pseudo' lt=':heading()'>:heading()</dfn>
	notation represents elements that have a <a>heading level</a> among matching
	any of the provided <var>integer</var> values.
	The syntax is:

	<pre class=prod>
		:heading() = :heading( <<level>># )
	</pre>

	where <dfn><code>&lt;level></code></dfn> is a <<number-token>> with its type flag set to "integer".

	The [=specificity=] of '':heading()'' is that of a class.

	<div class="example">
		The following example styles headings with levels between 1 and 3 with a
		font-weight of 900, while headings with levels 6 onward with font-weight of
		500, additionally heading levels 1 and 2 will be underlined, while 3 and
		beyond will have no text-decoration:

		<pre>:heading(1, 2, 3) { font-weight: 900; }</pre>
		<pre>:heading(6, 7, 8, 9) { font-weight: 500; }</pre>
		<pre>:heading(1, 2) { text-decoration: underline; }</pre>
		<pre>:heading(3, 4, 5, 6, 7, 8, 9) { text-decoration: none; }</pre>
	</div>

	Note: The <a>heading level</a> might be different from an element's
	<a>type selector</a>. Thus, a selector ''h1:heading(3)'' matches any
	''h1'' tag which has an exposed heading level of 3.

	<wpt>
		heading.html
		parsing/parse-heading.html
	</wpt>

<h2 id="grid-structural-selectors" oldids="table-pseudos">
Grid-Structural Selectors</h2>

	The double-association of a cell in a 2D grid (to its row and column)
	cannot be represented by parentage in a hierarchical markup language.
	Only one of those associations can be represented hierarchically: the
	other must be explicitly or implicitly defined in the document language
	semantics. In both HTML and DocBook, two of the most common hierarchical
	markup languages, the markup is row-primary (that is, the row associations
	are represented hierarchically); the columns must be implied.
	To be able to represent such implied column-based relationships, the
	<a>column combinator</a> and the
	'':nth-col()'' and '':nth-last-col()'' pseudo-classes
	are defined.
	In a column-primary format, these pseudo-classes match against row associations instead.

<h3 id="the-column-combinator">
Column combinator (<code>||</code>)</h3>

	The <dfn export>column combinator</dfn>, which consists of two pipes (<dfn selector id="selectordef-column">||</dfn>)
	represents the relationship of a column element
	to a cell element belonging to the column it represents.
	Column membership is determined based on the semantics of the document language only:
	whether and how the elements are presented is not considered.
	If a cell element belongs to more than one column,
	it is represented by a selector indicating membership in any of those columns.

	<div class="example">
		The following example makes cells C, E, and G gray.

		<pre>
		col.selected || td {
			background: gray;
			color: white;
			font-weight: bold;
		}
		</pre>

		<pre>
		&lt;table>
			&lt;col span="2">
			&lt;col class="selected">
			&lt;tr>&lt;td>A &lt;td>B &lt;td>C
			&lt;tr>&lt;td colspan="2">D &lt;td>E
			&lt;tr>&lt;td>F &lt;td colspan="2">G
		&lt;/table>
		</pre>
	</div>

<h3 id="the-nth-col-pseudo">
'':nth-col()'' pseudo-class</h3>

	The <dfn id='nth-col-pseudo' lt=":nth-col()">:nth-col(<var>An+B</var>)</dfn>
	pseudo-class notation represents a cell element belonging to a column
	that has <var>An+B</var>-1 columns
	<strong>before</strong> it, for any positive
	integer or zero value of <code>n</code>. Column membership is determined
	based on the semantics of the document language only: whether and how the
	elements are presented is not considered. If a cell element belongs to
	more than one column, it is represented by a selector indicating any of
	those columns.

	The CSS Syntax Module [[!CSS3SYN]] defines the <a href="https://drafts.csswg.org/css-syntax/#anb"><var>An+B</var> notation</a>.

<h3 id="the-nth-last-col-pseudo">
'':nth-last-col()'' pseudo-class</h3>

	The <dfn id='nth-last-col-pseudo' lt=":nth-last-col()">:nth-last-col(<var>An+B</var>)</dfn>
	pseudo-class notation represents a cell element belonging to a column
	that has <var>An+B</var>-1 columns
	<strong>after</strong> it, for any positive
	integer or zero value of <code>n</code>. Column membership is determined
	based on the semantics of the document language only: whether and how the
	elements are presented is not considered. If a cell element belongs to
	more than one column, it is represented by a selector indicating any of
	those columns.

	The CSS Syntax Module [[!CSS3SYN]] defines the <a href="https://drafts.csswg.org/css-syntax/#anb"><var>An+B</var> notation</a>.

<h2 id="combinators">
Combinators</h2>

<h3 id="idref-combinators">
Reference combinators <code>/ref/</code></h3>

	The <dfn export>reference combinator</dfn> consists of two slashes
	with an intervening <a href="http://www.w3.org/TR/css3-namespace/#css-qnames">CSS qualified name</a>,
	and separates two <a>compound selectors</a>,
	e.g. ''A /attr/ B''.
	The element represented by the first <a>compound selector</a>
	explicitly references
	the element represented by the second <a>compound selector</a>.
	Unless the host language defines a different syntax for expressing this relationship,
	this relationship is considered to exist if
	the value of the specified attribute on the first element is an IDREF or an <a>ID selector</a>
	referencing the second element.

	Attribute matching for reference combinators follow the same rules as for <a href="http://www.w3.org/TR/css3-selectors/#attribute-selectors">attribute selectors</a>.

	<div class="example">
		The following example highlights an <a element>input</a> element
		when its <a href="http://www.w3.org/TR/html40/interact/forms.html#h-17.9"><code>&lt;label></code></a>
		is focused or hovered-over:

		<pre>
		label:is(:hover, :focus) /for/ input,       /* association by "for" attribute */
		label:is(:hover, :focus):not([for]) input { /* association by containment */
			box-shadow: yellow 0 0 10px;
		}
		</pre>
	</div>


<h2 id="grammar" oldids="formal-syntax">
Grammar</h2>

	This module extends the CSS grammar of selectors with:

	<pre class=prod>
	<dfn>&lt;combinator></dfn> = '>' | '+' | '~' | [ '|' '|' ] | [ / <<wq-name>> / ]
	</pre>

	<ul>
	<li id="white-space">
		White space is forbidden:
		* Between the components of a <<combinator>>.
	</ul>


<h2 id="changes">
Changes</h2>

<h3 id="changes-20260415">
Changes Since the <a href="https://www.w3.org/TR/2026/WD-selectors-5-20260217/">
	First Public Working Draft</a> of 17 February 2026</h3>

	<ul>
		<li>Moved the  column combinator to Selectors 5
			<a href="https://github.com/w3c/csswg-drafts/pull/13424">PR 13424</a>
		</li>
	</ul>

<h3 id="changes-level-4">
Changes Since Level 4</h3>

	Additions since <a href="https://www.w3.org/TR/selectors-4/">Level 4</a>:

	<ul>
		<li>Reference combinators
		(deferred from an <a href="https://www.w3.org/TR/2013/WD-selectors4-20130502/">earlier draft</a> of Selectors 4)</li>
		<li>The '':local-link'' pseudo-class
		(deferred from an <a href="https://www.w3.org/TR/2022/WD-selectors-4-20221111/">earlier draft</a> of Selectors 4)
		and its functional form
		(deferred from an <a href="https://www.w3.org/TR/2013/WD-selectors4-20130502/">earlier draft</a> of Selectors 4)</li>
		<li>The '':state()'' pseudo-class</li>
		<li>The '':heading'' and '':heading()'' pseudo-classes</li>
		<li>The '':interest-source'' and '':interest-target'' pseudo-classes</li>
		<li>The '':blank'' pseudo-class
		(deferred from an <a href="https://www.w3.org/TR/2022/WD-selectors-4-20221111/">earlier draft</a> of Selectors 4)</li>
		<li>The <a href="#grid-structural-selectors">grid-structural (column) selectors</a>
		(deferred from an <a href="https://www.w3.org/TR/2022/WD-selectors-4-20221111/">earlier draft</a> of Selectors 4)</li>
		<li>The <a href="#time-pseudos">time-dimensional pseudo-classes</a>
		(deferred from an <a href="https://www.w3.org/TR/2022/WD-selectors-4-20221111/">earlier draft</a> of Selectors 4)</li>
	</ul>

<h2 id="acknowledgements">
Acknowledgements</h2>

	The CSS working group would like to thank everyone who contributed
	to the <a href="https://www.w3.org/TR/selectors-4">previous Selectors</a> specifications over the years,
	as those specifications formed the basis for this one.
	In particular, the working group would like to extend special thanks
	to the following for their specific contributions to Selectors Level 5:
	Joey Arhar.

	<h2 class=no-num id=privacy>Privacy Considerations</h2>

	<p>Should be copied from Level 4 when appropriate.</p>

	<h2 class=no-num id=security>Security Considerations</h2>

	<p>Should be copied from Level 4 when appropriate.</p>

	<!-- wpt copied over from Selectors 4, and hidden -->

<wpt hidden>
		old-tests/css3-modsel-1.xml
		old-tests/css3-modsel-10.xml
		old-tests/css3-modsel-100.xml
		old-tests/css3-modsel-100b.xml
		old-tests/css3-modsel-101.xml
		old-tests/css3-modsel-101b.xml
		old-tests/css3-modsel-102.xml
		old-tests/css3-modsel-102b.xml
		old-tests/css3-modsel-103.xml
		old-tests/css3-modsel-103b.xml
		old-tests/css3-modsel-104.xml
		old-tests/css3-modsel-104b.xml
		old-tests/css3-modsel-105.xml
		old-tests/css3-modsel-105b.xml
		old-tests/css3-modsel-106.xml
		old-tests/css3-modsel-106b.xml
		old-tests/css3-modsel-107.xml
		old-tests/css3-modsel-107b.xml
		old-tests/css3-modsel-108.xml
		old-tests/css3-modsel-108b.xml
		old-tests/css3-modsel-109.xml
		old-tests/css3-modsel-109b.xml
		old-tests/css3-modsel-11.xml
		old-tests/css3-modsel-110.xml
		old-tests/css3-modsel-110b.xml
		old-tests/css3-modsel-111.xml
		old-tests/css3-modsel-111b.xml
		old-tests/css3-modsel-112.xml
		old-tests/css3-modsel-112b.xml
		old-tests/css3-modsel-113.xml
		old-tests/css3-modsel-113b.xml
		old-tests/css3-modsel-114.xml
		old-tests/css3-modsel-114b.xml
		old-tests/css3-modsel-115.xml
		old-tests/css3-modsel-115b.xml
		old-tests/css3-modsel-116.xml
		old-tests/css3-modsel-116b.xml
		old-tests/css3-modsel-117.xml
		old-tests/css3-modsel-117b.xml
		old-tests/css3-modsel-118.xml
		old-tests/css3-modsel-119.xml
		old-tests/css3-modsel-120.xml
		old-tests/css3-modsel-121.xml
		old-tests/css3-modsel-122.xml
		old-tests/css3-modsel-123.xml
		old-tests/css3-modsel-123b.xml
		old-tests/css3-modsel-124.xml
		old-tests/css3-modsel-124b.xml
		old-tests/css3-modsel-125.xml
		old-tests/css3-modsel-125b.xml
		old-tests/css3-modsel-126.xml
		old-tests/css3-modsel-126b.xml
		old-tests/css3-modsel-127.xml
		old-tests/css3-modsel-127b.xml
		old-tests/css3-modsel-128.xml
		old-tests/css3-modsel-128b.xml
		old-tests/css3-modsel-129.xml
		old-tests/css3-modsel-129b.xml
		old-tests/css3-modsel-13.xml
		old-tests/css3-modsel-130.xml
		old-tests/css3-modsel-130b.xml
		old-tests/css3-modsel-131.xml
		old-tests/css3-modsel-131b.xml
		old-tests/css3-modsel-132.xml
		old-tests/css3-modsel-132b.xml
		old-tests/css3-modsel-133.xml
		old-tests/css3-modsel-133b.xml
		old-tests/css3-modsel-134.xml
		old-tests/css3-modsel-134b.xml
		old-tests/css3-modsel-135.xml
		old-tests/css3-modsel-135b.xml
		old-tests/css3-modsel-136.xml
		old-tests/css3-modsel-136b.xml
		old-tests/css3-modsel-137.xml
		old-tests/css3-modsel-137b.xml
		old-tests/css3-modsel-138.xml
		old-tests/css3-modsel-138b.xml
		old-tests/css3-modsel-139.xml
		old-tests/css3-modsel-139b.xml
		old-tests/css3-modsel-14.xml
		old-tests/css3-modsel-140.xml
		old-tests/css3-modsel-140b.xml
		old-tests/css3-modsel-141.xml
		old-tests/css3-modsel-141b.xml
		old-tests/css3-modsel-142.xml
		old-tests/css3-modsel-142b.xml
		old-tests/css3-modsel-143.xml
		old-tests/css3-modsel-143b.xml
		old-tests/css3-modsel-144.xml
		old-tests/css3-modsel-145a.xml
		old-tests/css3-modsel-145b.xml
		old-tests/css3-modsel-146a.xml
		old-tests/css3-modsel-146b.xml
		old-tests/css3-modsel-147a.xml
		old-tests/css3-modsel-147b.xml
		old-tests/css3-modsel-148.xml
		old-tests/css3-modsel-149.xml
		old-tests/css3-modsel-149b.xml
		old-tests/css3-modsel-14b.xml
		old-tests/css3-modsel-14c.xml
		old-tests/css3-modsel-14d.xml
		old-tests/css3-modsel-14e.xml
		old-tests/css3-modsel-15.xml
		old-tests/css3-modsel-150.xml
		old-tests/css3-modsel-151.xml
		old-tests/css3-modsel-152.xml
		old-tests/css3-modsel-153.xml
		old-tests/css3-modsel-154.xml
		old-tests/css3-modsel-155.xml
		old-tests/css3-modsel-155a.xml
		old-tests/css3-modsel-155b.xml
		old-tests/css3-modsel-155c.xml
		old-tests/css3-modsel-155d.xml
		old-tests/css3-modsel-156.xml
		old-tests/css3-modsel-156b.xml
		old-tests/css3-modsel-156c.xml
		old-tests/css3-modsel-157.xml
		old-tests/css3-modsel-158.xml
		old-tests/css3-modsel-159.xml
		old-tests/css3-modsel-15b.xml
		old-tests/css3-modsel-16.xml
		old-tests/css3-modsel-160.xml
		old-tests/css3-modsel-161.xml
		old-tests/css3-modsel-166.xml
		old-tests/css3-modsel-166a.xml
		old-tests/css3-modsel-167.xml
		old-tests/css3-modsel-167a.xml
		old-tests/css3-modsel-168.xml
		old-tests/css3-modsel-168a.xml
		old-tests/css3-modsel-169.xml
		old-tests/css3-modsel-169a.xml
		old-tests/css3-modsel-17.xml
		old-tests/css3-modsel-170.xml
		old-tests/css3-modsel-170a.xml
		old-tests/css3-modsel-170b.xml
		old-tests/css3-modsel-170c.xml
		old-tests/css3-modsel-170d.xml
		old-tests/css3-modsel-171.xml
		old-tests/css3-modsel-172a.xml
		old-tests/css3-modsel-172b.xml
		old-tests/css3-modsel-173a.xml
		old-tests/css3-modsel-173b.xml
		old-tests/css3-modsel-174a.xml
		old-tests/css3-modsel-174b.xml
		old-tests/css3-modsel-175a.xml
		old-tests/css3-modsel-175b.xml
		old-tests/css3-modsel-175c.xml
		old-tests/css3-modsel-176.xml
		old-tests/css3-modsel-177a.xml
		old-tests/css3-modsel-177b.xml
		old-tests/css3-modsel-178.xml
		old-tests/css3-modsel-179.xml
		old-tests/css3-modsel-179a.xml
		old-tests/css3-modsel-18.xml
		old-tests/css3-modsel-180a.xml
		old-tests/css3-modsel-181.xml
		old-tests/css3-modsel-182.xml
		old-tests/css3-modsel-183.xml
		old-tests/css3-modsel-184a.xml
		old-tests/css3-modsel-184b.xml
		old-tests/css3-modsel-184c.xml
		old-tests/css3-modsel-184d.xml
		old-tests/css3-modsel-184e.xml
		old-tests/css3-modsel-184f.xml
		old-tests/css3-modsel-18a.xml
		old-tests/css3-modsel-18b.xml
		old-tests/css3-modsel-18c.xml
		old-tests/css3-modsel-19.xml
		old-tests/css3-modsel-19b.xml
		old-tests/css3-modsel-2.xml
		old-tests/css3-modsel-20.xml
		old-tests/css3-modsel-21.xml
		old-tests/css3-modsel-21b.xml
		old-tests/css3-modsel-21c.xml
		old-tests/css3-modsel-22.xml
		old-tests/css3-modsel-25.xml
		old-tests/css3-modsel-27.xml
		old-tests/css3-modsel-27a.xml
		old-tests/css3-modsel-27b.xml
		old-tests/css3-modsel-28.xml
		old-tests/css3-modsel-28b.xml
		old-tests/css3-modsel-29.xml
		old-tests/css3-modsel-29b.xml
		old-tests/css3-modsel-3.xml
		old-tests/css3-modsel-30.xml
		old-tests/css3-modsel-31.xml
		old-tests/css3-modsel-32.xml
		old-tests/css3-modsel-33.xml
		old-tests/css3-modsel-34.xml
		old-tests/css3-modsel-35.xml
		old-tests/css3-modsel-36.xml
		old-tests/css3-modsel-37.xml
		old-tests/css3-modsel-38.xml
		old-tests/css3-modsel-39.xml
		old-tests/css3-modsel-39a.xml
		old-tests/css3-modsel-39b.xml
		old-tests/css3-modsel-39c.xml
		old-tests/css3-modsel-3a.xml
		old-tests/css3-modsel-4.xml
		old-tests/css3-modsel-41.xml
		old-tests/css3-modsel-41a.xml
		old-tests/css3-modsel-42.xml
		old-tests/css3-modsel-42a.xml
		old-tests/css3-modsel-43.xml
		old-tests/css3-modsel-43b.xml
		old-tests/css3-modsel-44.xml
		old-tests/css3-modsel-44b.xml
		old-tests/css3-modsel-44c.xml
		old-tests/css3-modsel-44d.xml
		old-tests/css3-modsel-45.xml
		old-tests/css3-modsel-45b.xml
		old-tests/css3-modsel-45c.xml
		old-tests/css3-modsel-46.xml
		old-tests/css3-modsel-46b.xml
		old-tests/css3-modsel-47.xml
		old-tests/css3-modsel-48.xml
		old-tests/css3-modsel-49.xml
		old-tests/css3-modsel-5.xml
		old-tests/css3-modsel-50.xml
		old-tests/css3-modsel-51.xml
		old-tests/css3-modsel-52.xml
		old-tests/css3-modsel-53.xml
		old-tests/css3-modsel-54.xml
		old-tests/css3-modsel-55.xml
		old-tests/css3-modsel-56.xml
		old-tests/css3-modsel-57.xml
		old-tests/css3-modsel-57b.xml
		old-tests/css3-modsel-59.xml
		old-tests/css3-modsel-6.xml
		old-tests/css3-modsel-60.xml
		old-tests/css3-modsel-61.xml
		old-tests/css3-modsel-62.xml
		old-tests/css3-modsel-63.xml
		old-tests/css3-modsel-64.xml
		old-tests/css3-modsel-65.xml
		old-tests/css3-modsel-66.xml
		old-tests/css3-modsel-66b.xml
		old-tests/css3-modsel-67.xml
		old-tests/css3-modsel-7.xml
		old-tests/css3-modsel-70.xml
		old-tests/css3-modsel-72.xml
		old-tests/css3-modsel-72b.xml
		old-tests/css3-modsel-73.xml
		old-tests/css3-modsel-73b.xml
		old-tests/css3-modsel-74.xml
		old-tests/css3-modsel-74b.xml
		old-tests/css3-modsel-75.xml
		old-tests/css3-modsel-75b.xml
		old-tests/css3-modsel-76.xml
		old-tests/css3-modsel-76b.xml
		old-tests/css3-modsel-77.xml
		old-tests/css3-modsel-77b.xml
		old-tests/css3-modsel-78.xml
		old-tests/css3-modsel-78b.xml
		old-tests/css3-modsel-79.xml
		old-tests/css3-modsel-7b.xml
		old-tests/css3-modsel-8.xml
		old-tests/css3-modsel-80.xml
		old-tests/css3-modsel-81.xml
		old-tests/css3-modsel-81b.xml
		old-tests/css3-modsel-82.xml
		old-tests/css3-modsel-82b.xml
		old-tests/css3-modsel-83.xml
		old-tests/css3-modsel-86.xml
		old-tests/css3-modsel-87.xml
		old-tests/css3-modsel-87b.xml
		old-tests/css3-modsel-88.xml
		old-tests/css3-modsel-88b.xml
		old-tests/css3-modsel-89.xml
		old-tests/css3-modsel-9.xml
		old-tests/css3-modsel-90.xml
		old-tests/css3-modsel-90b.xml
		old-tests/css3-modsel-91.xml
		old-tests/css3-modsel-92.xml
		old-tests/css3-modsel-93.xml
		old-tests/css3-modsel-94.xml
		old-tests/css3-modsel-94b.xml
		old-tests/css3-modsel-95.xml
		old-tests/css3-modsel-96.xml
		old-tests/css3-modsel-96b.xml
		old-tests/css3-modsel-97.xml
		old-tests/css3-modsel-97b.xml
		old-tests/css3-modsel-98.xml
		old-tests/css3-modsel-98b.xml
		old-tests/css3-modsel-99.xml
		old-tests/css3-modsel-99b.xml
		old-tests/css3-modsel-d1.xml
		old-tests/css3-modsel-d1b.xml
		old-tests/css3-modsel-d2.xml
		old-tests/css3-modsel-d3.xml
		old-tests/css3-modsel-d4.xml
	</wpt>

	<wpt hidden title="Tests that do not relate to any section">
		eof-right-after-selector-crash.html
		eof-some-after-selector-crash.html
		hash-collision.html
		parsing/invalid-pseudos.html
		selector-after-font-family.html
	</wpt>

	<wpt hidden>
		featureless-001.html
		featureless-002.html
		featureless-003.html
		featureless-004.html
		featureless-005.html
	</wpt>

	<wpt hidden>
		x-pseudo-element.html
	</wpt>

	<wpt hidden>
		case-insensitive-parent.html
		invalidation/quirks-mode-stylesheet-dynamic-add-001.html
		selectors-case-sensitive-001.html
	</wpt>

	<wpt hidden>
		invalidation/selectorText-dynamic-001.html
		invalidation/sheet-going-away-001.html
		invalidation/sheet-going-away-002.html
	</wpt>

	<wpt hidden>
		invalidation/is-where-pseudo-containing-hard-pseudo-and-never-matching.html
		invalidation/is-where-pseudo-containing-hard-pseudo.html
	</wpt>

	<wpt hidden>
		invalidation/is.html
		is-default-ns-001.html
		is-default-ns-002.html
		is-default-ns-003.html
		is-default-ns-002.html
		is-default-ns-003.html
		is-nested.html
		is-specificity-shadow.html
		is-specificity.html
		is-where-basic.html
		is-where-error-crash.html
		is-where-error-recovery.html
		is-where-not.html
		is-where-pseudo-classes.html
		is-where-pseudo-elements.html
		is-where-shadow.html
		is-where-visited.html
		parsing/parse-is-where.html
		parsing/parse-is.html
		query/query-is.html
	</wpt>

	<wpt hidden>
		invalidation/not-001.html
		invalidation/not-002.html
		not-complex.html
		not-default-ns-001.html
		not-default-ns-002.html
		not-default-ns-003.html
		not-links.html
		not-specificity.html
		parsing/parse-not.html
		query/query-where.html
	</wpt>

	<wpt hidden>
		invalidation/where.html
		parsing/parse-where.html
		pseudo-where-crash.html
	</wpt>

	<wpt hidden>
		has-argument-with-explicit-scope.html
		has-basic.html
		has-display-none-checked.html
		has-focus-display-change.html
		has-matches-to-uninserted-elements.html
		has-nth-of-crash.html
		has-relative-argument.html
		has-sibling-chrome-crash.html
		has-specificity.html
		has-style-sharing-001.html
		has-style-sharing-002.html
		has-style-sharing-003.html
		has-style-sharing-004.html
		has-style-sharing-005.html
		has-style-sharing-006.html
		has-style-sharing-007.html
		has-style-sharing-pseudo-001.html
		has-style-sharing-pseudo-002.html
		has-style-sharing-pseudo-003.html
		has-style-sharing-pseudo-004.html
		has-style-sharing-pseudo-005.html
		has-style-sharing-pseudo-006.html
		has-style-sharing-pseudo-007.html
		has-style-sharing-pseudo-008.html
		has-visited.html
		invalidation/child-indexed-pseudo-classes-in-has.html
		invalidation/crashtests/has-pseudoclass-only-crash.html
		invalidation/defined-in-has.html
		invalidation/dir-pseudo-class-in-has.html
		invalidation/empty-pseudo-in-has.html
		invalidation/fullscreen-pseudo-class-in-has.html
		invalidation/has-append-first-node.html
		invalidation/has-complexity.html
		invalidation/has-css-nesting-shared.html
		invalidation/has-in-adjacent-position.html
		invalidation/has-in-ancestor-position.html
		invalidation/has-in-parent-position.html
		invalidation/has-in-sibling-position.html
		invalidation/has-invalidation-after-removing-non-first-element.html
		invalidation/has-invalidation-first-in-sibling-chain.html
		invalidation/has-invalidation-for-wiping-an-element.html
		invalidation/has-nested-pseudo-001-crash.html
		invalidation/has-nested-pseudo-002-crash.html
		invalidation/has-nested-pseudo-003-crash.html
		invalidation/has-pseudo-element.html
		invalidation/has-pseudoclass-only.html
		invalidation/has-sibling-insertion-removal.html
		invalidation/has-sibling.html
		invalidation/has-side-effect.html
		invalidation/has-unstyled.html
		invalidation/has-with-is-child-combinator.html
		invalidation/has-with-nesting-parent-containing-complex.html
		invalidation/has-with-nesting-parent-containing-hover.html
		invalidation/has-with-not.html
		invalidation/has-with-nth-child-sibling-remove.html
		invalidation/has-with-nth-child.html
		invalidation/has-with-pseudo-class.html
		invalidation/host-context-pseudo-class-in-has.html
		invalidation/host-has-shadow-tree-element-at-nonsubject-position.html
		invalidation/host-has-shadow-tree-element-at-subject-position.html
		invalidation/host-pseudo-class-in-has.html
		invalidation/input-pseudo-classes-in-has.html
		invalidation/is-pseudo-containing-complex-in-has.html
		invalidation/is-pseudo-containing-sibling-relationship-in-has.html
		invalidation/lang-pseudo-class-in-has-document-element.html
		invalidation/lang-pseudo-class-in-has-multiple-document-elements.html
		invalidation/lang-pseudo-class-in-has-xhtml.xhtml
		invalidation/lang-pseudo-class-in-has.html
		invalidation/link-pseudo-class-in-has.html
		invalidation/link-pseudo-in-has.html
		invalidation/location-pseudo-classes-in-has.html
		invalidation/media-loading-pseudo-classes-in-has.html
		invalidation/media-pseudo-classes-in-has.html
		invalidation/modal-pseudo-class-in-has.html
		invalidation/negated-has-in-nonsubject-position.html
		invalidation/not-pseudo-containing-complex-in-has.html
		invalidation/not-pseudo-containing-sibling-relationship-in-has.html
		invalidation/open-pseudo-class-in-has.html
		invalidation/state-in-has.html
		invalidation/subject-has-invalidation-with-display-none-anchor-element.html
		invalidation/target-pseudo-in-has.html
		invalidation/typed-child-indexed-pseudo-classes-in-has.html
		invalidation/user-action-pseudo-classes-in-has.html
		parsing/parse-has-disallow-nesting-has-inside-has.html
		parsing/parse-has-forgiving-selector.html
		parsing/parse-has.html
	</wpt>

	<wpt hidden>
		parsing/parse-universal.html
	</wpt>

	<wpt hidden>
		invalidation/defined.html
	</wpt>

	<wpt hidden>
		attribute-selectors/style-attribute-selector.html
		invalidation/attribute.html
		invalidation/class-id-attr.html
		missing-right-token.html
		parsing/parse-attribute.html
		selectors-attr-many.html
	</wpt>

	<wpt hidden>
		attribute-selectors/attribute-case/cssom.html
		attribute-selectors/attribute-case/semantics.html
		attribute-selectors/attribute-case/syntax.html
	</wpt>

	<wpt hidden>
		selectors-namespace-001.xml
	</wpt>

	<wpt hidden>
		parsing/parse-class.html
		xml-class-selector.xml
	</wpt>

	<wpt hidden>
		historical-xmlid.xht
		parsing/parse-id.html
	</wpt>

	<wpt hidden>
		dir-pseudo-in-has.html
		dir-pseudo-on-bdi-element.html
		dir-pseudo-on-input-element.html
		dir-pseudo-update-document-element.html
		dir-selector-auto-direction-change-001.html
		dir-selector-auto.html
		dir-selector-change-001.html
		dir-selector-change-002.html
		dir-selector-change-003.html
		dir-selector-change-004.html
		dir-selector-ltr-001.html
		dir-selector-ltr-002.html
		dir-selector-ltr-003.html
		dir-selector-querySelector.html
		dir-selector-rtl-001.html
		dir-selector-white-space-001.html
		dir-style-01a.html
		dir-style-01b.html
		dir-style-02a.html
		dir-style-02b.html
		dir-style-03a.html
		dir-style-03b.html
		dir-style-04.html
		invalidation/part-dir.html
	</wpt>

	<wpt hidden>
		i18n/css3-selectors-lang-001.html
		i18n/css3-selectors-lang-002.html
		i18n/css3-selectors-lang-004.html
		i18n/css3-selectors-lang-005.html
		i18n/css3-selectors-lang-006.html
		i18n/css3-selectors-lang-007.html
		i18n/css3-selectors-lang-008.html
		i18n/css3-selectors-lang-009.html
		i18n/css3-selectors-lang-010.html
		i18n/css3-selectors-lang-011.html
		i18n/css3-selectors-lang-012.html
		i18n/css3-selectors-lang-014.html
		i18n/css3-selectors-lang-015.html
		i18n/css3-selectors-lang-016.html
		i18n/css3-selectors-lang-021.html
		i18n/css3-selectors-lang-022.html
		i18n/css3-selectors-lang-024.html
		i18n/css3-selectors-lang-025.html
		i18n/css3-selectors-lang-026.html
		i18n/css3-selectors-lang-027.html
		i18n/css3-selectors-lang-028.html
		i18n/css3-selectors-lang-029.html
		i18n/css3-selectors-lang-030.html
		i18n/css3-selectors-lang-031.html
		i18n/css3-selectors-lang-032.html
		i18n/css3-selectors-lang-034.html
		i18n/css3-selectors-lang-035.html
		i18n/css3-selectors-lang-036.html
		i18n/css3-selectors-lang-041.html
		i18n/css3-selectors-lang-042.html
		i18n/css3-selectors-lang-044.html
		i18n/css3-selectors-lang-045.html
		i18n/css3-selectors-lang-046.html
		i18n/css3-selectors-lang-047.html
		i18n/css3-selectors-lang-048.html
		i18n/css3-selectors-lang-049.html
		i18n/css3-selectors-lang-050.html
		i18n/css3-selectors-lang-051.html
		i18n/css3-selectors-lang-052.html
		i18n/css3-selectors-lang-054.html
		i18n/css3-selectors-lang-055.html
		i18n/css3-selectors-lang-056.html
		i18n/lang-pseudo-class-across-shadow-boundaries.html
		i18n/lang-pseudo-class-disconnected.html
		i18n/lang-pseudo-class-empty-attribute.xhtml
		invalidation/part-lang.html
		selectors-4/lang-000.html
		selectors-4/lang-001.html
		selectors-4/lang-002.html
		selectors-4/lang-003.html
		selectors-4/lang-004.html
		selectors-4/lang-005.html
		selectors-4/lang-006.html
		selectors-4/lang-007.html
		selectors-4/lang-008.html
		selectors-4/lang-009.html
		selectors-4/lang-010.html
		selectors-4/lang-011.html
		selectors-4/lang-012.html
		selectors-4/lang-013.html
		selectors-4/lang-014.html
		selectors-4/lang-015.html
		selectors-4/lang-016.html
		selectors-4/lang-017.html
		selectors-4/lang-018.html
		selectors-4/lang-019.html
		selectors-4/lang-020.html
		selectors-4/lang-021.html
		selectors-4/lang-022.html
		selectors-4/lang-023.html
		selectors-4/lang-024.html
		selectors-4/lang-025.html
	</wpt>

	<wpt hidden>
		invalidation/any-link-attribute-removal.html
		invalidation/any-link-pseudo.html
	</wpt>

	<wpt hidden>
		caret-color-visited-inheritance.html
		text-emphasis-visited-inheritance.html
		text-fill-color-visited-inheritance.html
		text-stroke-color-visited-inheritance.html
		visited-in-visited-compound.html
		visited-inheritance.html
		visited-nested.html
		visited-part-crash.html
	</wpt>

	<wpt hidden>
		scope-selector.html
		scope-without-scoping.html
	</wpt>

	<wpt hidden>
		hover-001-manual.html
		hover-002.html
		remove-hovered-element.html
	</wpt>

	<wpt hidden>
		focus-display-none-001.html
		focus-in-focus-event-001.html
		focus-in-focusin-event-001.html
	</wpt>

	<wpt hidden>
		focus-visible-001.html
		focus-visible-002.html
		focus-visible-003.html
		focus-visible-004.html
		focus-visible-005.html
		focus-visible-006.html
		focus-visible-007.html
		focus-visible-008.html
		focus-visible-009.html
		focus-visible-010.html
		focus-visible-011.html
		focus-visible-012.html
		focus-visible-013.html
		focus-visible-014.html
		focus-visible-015.html
		focus-visible-016.html
		focus-visible-017-2.html
		focus-visible-017.html
		focus-visible-018-2.html
		focus-visible-018.html
		focus-visible-019.html
		focus-visible-020.html
		focus-visible-021.html
		focus-visible-023.html
		focus-visible-024.html
		focus-visible-025.html
		focus-visible-026.html
		focus-visible-027.html
		focus-visible-028.html
		focus-visible-script-focus-001.html
		focus-visible-script-focus-004.html
		focus-visible-script-focus-005.html
		focus-visible-script-focus-008-b.html
		focus-visible-script-focus-008.html
		focus-visible-script-focus-009.html
		focus-visible-script-focus-010.html
		focus-visible-script-focus-011.html
		focus-visible-script-focus-012.html
		focus-visible-script-focus-013.html
		focus-visible-script-focus-014.html
		focus-visible-script-focus-015.html
		focus-visible-script-focus-018.html
		focus-visible-script-focus-019.html
		focus-visible-script-focus-020.html
		parsing/parse-focus-visible.html
	</wpt>

	<wpt hidden>
		focus-within-001.html
		focus-within-002.html
		focus-within-003.html
		focus-within-004.html
		focus-within-005.html
		focus-within-006.html
		focus-within-007.html
		focus-within-008.html
		focus-within-009.html
		focus-within-010.html
		focus-within-011.html
		focus-within-012.html
		focus-within-013.html
		focus-within-display-none-001.html
		focus-within-focus-move.html
		focus-within-removal.html
		focus-within-shadow-001.html
		focus-within-shadow-002.html
		focus-within-shadow-003.html
		focus-within-shadow-004.html
		focus-within-shadow-005.html
		focus-within-shadow-006.html
	</wpt>

	<wpt hidden>
		media/media-playback-state.html
	</wpt>

	<wpt hidden>
		media/media-loading-state-timing.sub.html
		media/media-playback-state-timing.html
	</wpt>

	<wpt hidden>
		media/sound-state.html
	</wpt>

	<wpt hidden>
		open-pseudo.html
		selectors-4/details-open-pseudo-001.html
		selectors-4/details-open-pseudo-002.html
		selectors-4/details-open-pseudo-003.html
	</wpt>
	<wpt hidden pathprefix="/css/css-pseudo/">
		input-element-pseudo-open.optional.html
	</wpt>

	<wpt hidden>
		popover-open-with-has-sibling-selector.html
	</wpt>

	<wpt hidden>
		modal-pseudo-class.html
	</wpt>

	<wpt hidden>
		invalidation/enabled-disabled.html
		pseudo-enabled-disabled.html
	</wpt>

	<wpt hidden>
		selector-read-write-type-change-001.html
		selector-read-write-type-change-002.html
	</wpt>

	<wpt hidden>
		invalidation/placeholder-shown.html
		placeholder-shown.html
		selector-placeholder-shown-emptify-placeholder.html
		selector-placeholder-shown-type-change-001.html
		selector-placeholder-shown-type-change-002.html
		selector-placeholder-shown-type-change-003.html
	</wpt>

	<wpt hidden>
		selector-required-type-change-001.html
		selector-required-type-change-002.html
		selector-required.html
	</wpt>

	<wpt hidden>
		invalidation/user-valid-user-invalid.html
		user-invalid-form-submission-invalidation.html
		user-invalid.html
		user-valid.html
		valid-invalid-form-fieldset.html
	</wpt>

	<wpt hidden>
		selector-structural-pseudo-root.html
	</wpt>

	<wpt hidden>
		root-siblings.html
	</wpt>

	<wpt hidden>
		selectors-empty-001.xml
	</wpt>

	<wpt hidden>
		child-indexed-no-parent.html
		child-indexed-pseudo-class.html
		invalidation/negated-nth-child-when-ancestor-changes.html
		invalidation/negated-nth-last-child-when-ancestor-changes.html
		invalidation/nth-child-containing-ancestor.html
		invalidation/nth-child-in-shadow-root.html
		invalidation/nth-child-of-attr-largedom.html
		invalidation/nth-child-of-attr.html
		invalidation/nth-child-of-class-prefix.html
		invalidation/nth-child-of-class.html
		invalidation/nth-child-of-has.html
		invalidation/nth-child-of-id-prefix.html
		invalidation/nth-child-of-ids.html
		invalidation/nth-child-of-in-ancestor.html
		invalidation/nth-child-of-in-is.html
		invalidation/nth-child-of-in-shadow-root.html
		invalidation/nth-child-of-is.html
		invalidation/nth-child-of-pseudo-class.html
		invalidation/nth-child-of-sibling.html
		invalidation/nth-child-when-ancestor-changes.html
		invalidation/nth-child-when-sibling-changes.html
		invalidation/nth-child-whole-subtree.html
		invalidation/nth-last-child-containing-ancestor.html
		invalidation/nth-last-child-in-shadow-root.html
		invalidation/nth-last-child-of-attr.html
		invalidation/nth-last-child-of-class-prefix.html
		invalidation/nth-last-child-of-class.html
		invalidation/nth-last-child-of-has.html
		invalidation/nth-last-child-of-id-prefix.html
		invalidation/nth-last-child-of-ids.html
		invalidation/nth-last-child-of-in-ancestor.html
		invalidation/nth-last-child-of-in-is.html
		invalidation/nth-last-child-of-in-shadow-root.html
		invalidation/nth-last-child-of-is.html
		invalidation/nth-last-child-of-pseudo-class.html
		invalidation/nth-last-child-of-sibling.html
		invalidation/nth-last-child-when-ancestor-changes.html
		invalidation/nth-last-child-when-sibling-changes.html
		nth-child-and-nth-last-child.html
		nth-child-of-attribute.html
		nth-child-of-classname-002.html
		nth-child-of-classname.html
		nth-child-of-complex-selector-many-children-2.html
		nth-child-of-complex-selector-many-children.html
		nth-child-of-complex-selector.html
		nth-child-of-compound-selector.html
		nth-child-of-has.html
		nth-child-of-nesting.html
		nth-child-of-no-space-after-of.html
		nth-child-of-not.html
		nth-child-of-nth-child.html
		nth-child-of-pseudo.html
		nth-child-of-tagname.html
		nth-child-of-universal-selector.html
		nth-child-specificity-1.html
		nth-child-specificity-2.html
		nth-child-specificity-3.html
		nth-child-specificity-4.html
		nth-child-spurious-brace-crash.html
		nth-last-child-invalid.html
		nth-last-child-of-classname.html
		nth-last-child-of-complex-selector.html
		nth-last-child-of-compound-selector.html
		nth-last-child-of-nesting.html
		nth-last-child-of-no-space-after-of.html
		nth-last-child-of-style-sharing-1.html
		nth-last-child-of-style-sharing-2.html
		nth-last-child-of-tagname.html
		nth-last-child-specificity-1.html
		nth-last-child-specificity-2.html
		nth-last-child-specificity-3.html
		nth-last-child-specificity-4.html
		sharing-in-svg-use.html
		parsing/parse-anplusb.html
	</wpt>

	<wpt hidden>
		nth-of-invalid.html
		invalidation/crashtests/nth-child-of-attribute-crash.html
		invalidation/nth-of-namespace-class-invalidation-crash.html
	</wpt>

	<wpt hidden>
		first-child.html
		invalidation/first-child-last-child.html
	</wpt>

	<wpt hidden>
		last-child.html
	</wpt>

	<wpt hidden>
		only-child.html
	</wpt>

	<wpt hidden>
		nth-of-type-namespace.html
	</wpt>

	<wpt hidden>
		last-of-type.html
	</wpt>

	<wpt hidden>
		first-of-type.html
		invalidation/negated-always-matches-negated-first-of-type-when-ancestor-changes.html
		invalidation/negated-first-of-type-in-nonsubject-position.html
		invalidation/negated-is-always-matches-negated-first-of-type-when-ancestor-changes.html
		invalidation/negated-is-never-matches-negated-first-of-type-when-ancestor-changes.html
		invalidation/negated-negated-first-of-type-when-ancestor-changes.html
		invalidation/negated-never-matches-negated-first-of-type-when-ancestor-changes.html
		of-type-selectors.xhtml
	</wpt>

	<wpt hidden>
		invalidation/negated-always-matches-negated-last-of-type-when-ancestor-changes.html
		invalidation/negated-is-always-matches-negated-last-of-type-when-ancestor-changes.html
		invalidation/negated-is-never-matches-negated-last-of-type-when-ancestor-changes.html
		invalidation/negated-last-of-type-invalidation.html
		invalidation/negated-negated-last-of-type-when-ancestor-changes.html
		invalidation/negated-never-matches-negated-last-of-type-when-ancestor-changes.html
	</wpt>

	<wpt hidden>
		only-of-type.html
	</wpt>

	<wpt hidden>
		parsing/parse-descendant.html
	</wpt>

	<wpt hidden>
		parsing/parse-child.html
	</wpt>

	<wpt hidden>
		invalidation/insert-sibling-001.html
		invalidation/insert-sibling-002.html
		invalidation/insert-sibling-003.html
		invalidation/insert-sibling-004.html
		invalidation/sibling.html
		parsing/parse-sibling.html
	</wpt>

	<wpt hidden>
		selectors-attr-white-space-001.html
	</wpt>

	<wpt hidden>
		webkit-pseudo-element.html
	</wpt>

	<wpt hidden>
		active-after-relayouts.html
		active-toplayer-001.html
		focus-within-toplayer-001.html
		hash-collision-cssom.html
		hover-toplayer-001.html
		invalidation/attribute-or-elemental-selectors-in-has.html
		invalidation/empty-pseudo-in-has-display-none.html
		invalidation/has-in-is-non-subject-compound.html
		invalidation/input-in-range-in-has-with-readonly.html
		invalidation/option-disabled-when-ancestor-changes.html
		media/media-loading-state.sub.html
		media/media-playing-paused-style-invalidation.html
		selectors-4/lang-singleton-subtag-matching.html
		selectors-attr-many-2.html
		toplayer-transition-001.html
		user-action-pseudo-top-layer.html
	</wpt>

	<wpt hidden title="Features from higher-level specs">
		heading.html
		invalidation/heading-pseudo-class-in-has.html
		parsing/parse-heading.html
		parsing/parse-state.html
	</wpt>

	<wpt hidden title="Features from other specs and unrelated tests">
		backdrop-input-crash.html
		first-letter-flag-001.html
		first-line-bidi-001.html
		first-line-bidi-002.html
		floating-first-letter-05d0.html
		floating-first-letter-feff.html
		invalidation/part-pseudo.html
		link-sharing-crash.html
		parsing/parse-part.html
		parsing/parse-slotted.html
		quirks-mode-import.html
		selection-image-001-no-selection-noref.html
		selection-image-001-noref.html
		selection-image-001.html
		selection-image-002.html
		spurious-brace-crash.html
	</wpt>
