<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Selectors: Attribute selectors</title>
<link rel="help" href="https://drafts.csswg.org/selectors-3/#attribute-selectors">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
<script>
// Attribute presence and value selectors
test_valid_selector('[att]');
test_valid_selector('[att=val]', '[att="val"]');
test_valid_selector('[att~=val]', '[att~="val"]');
test_valid_selector('[att|=val]', '[att|="val"]');
test_valid_selector('h1[title]');
test_valid_selector("span[class='example']", 'span[class="example"]');
test_valid_selector('a[hreflang=fr]', 'a[hreflang="fr"]');
test_valid_selector("a[hreflang|='en']", 'a[hreflang|="en"]');
// Substring matching attribute selectors
test_valid_selector('[att^=val]', '[att^="val"]');
test_valid_selector('[att$=val]', '[att$="val"]');
test_valid_selector('[att*=val]', '[att*="val"]');
test_valid_selector('object[type^="image/"]');
test_valid_selector('a[href$=".html"]');
test_valid_selector('p[title*="hello"]');
// From Attribute selectors and namespaces examples in spec:
test_valid_selector('[*|att]');
test_valid_selector('[|att]', '[att]');
</script>