Skip to content

Conversation

@ChrisC
Copy link
Contributor

@ChrisC ChrisC commented Oct 22, 2025

cc @foolip @jugglinmike

Web features mapped:

  • z-index
  • xslt
  • xpath
  • xml-serializer
  • writing-mode-svg-values
  • writing-mode
  • word-spacing
  • word-break-break-word
  • word-break-auto-phrase
  • word-break

See commit messages for more info about what was included and excluded in each mapping.

ChrisC added 11 commits October 8, 2025 15:10
Results:
- Total matches found: 84
- Filtered to actual tests: 10 files
- Directories classified: 1

WEB_FEATURES.yml files created:
1. ✅ dom/xslt/WEB_FEATURES.yml - Created with `files: '**'` (entire directory is XSLT tests)

Excluded:
- ❌ content-security-policy/xslt/ - Tests CSP, not XSLT specifically
- ❌ fetch/metadata/ - Tests fetch metadata, not XSLT specifically
Feature: xpath
Reference: https://github.com/web-platform-dx/web-features/blob/main/features/xpath.yml

Results:
- Total matches found: 1,241
- Filtered to actual tests: 32 files
- Directories classified: 1

WEB_FEATURES.yml files created:
1. ✅ domxpath/WEB_FEATURES.yml - Created with files: '**' (entire directory is XPath tests)
Feature: xml-serializer
Reference: https://github.com/web-platform-dx/web-features/blob/main/features/xml-serializer.yml

Results:
- Total matches found: 19
- Filtered to actual tests: 3 files
- Directories classified: 1

WEB_FEATURES.yml files created:
✅ domparsing/WEB_FEATURES.yml - 3 files

Excluded:
❌ css/filter-effects/ - Tests filter effects, just uses XMLSerializer as a utility
❌ html/dom/idlharness.https.html - IDL harness test
❌ workers/ - Tests worker properties, not XMLSerializer specifically
❌ interfaces/html.idl - IDL definition file
Feature: writing-mode-svg-values
Reference: https://github.com/web-platform-dx/web-features/blob/main/features/writing-mode-svg-values.yml

Results:
Total matches found: 5,524
Filtered to actual tests: 8 files
Directories classified: 2

WEB_FEATURES.yml files created:
✅ css/css-writing-modes/WEB_FEATURES.yml - Single file: writing-mode-parsing-svg1-001.html
✅ svg/text/reftests/WEB_FEATURES.yml - 7 SVG reftest files

Excluded:
❌ Modern writing-mode values (horizontal-tb, vertical-rl, vertical-lr, sideways-rl, sideways-lr) - those are the standard writing-mode feature, not the deprecated SVG 1.1 values
Feature: writing-mode
Reference: https://github.com/web-platform-dx/web-features/blob/main/features/writing-mode.yml

Results:
- Total matches found: 5,524
- Filtered for modern values: horizontal-tb, vertical-rl, vertical-lr, sideways-rl, sideways-lr
- Classified within css/css-writing-modes/ directory tree only
- Files classified: ~1,626 test files across 4 directories

WEB_FEATURES.yml files modified:
✅ css/css-writing-modes/WEB_FEATURES.yml - Main directory (1,530 files) using '*' pattern with negation for SVG values file
✅ css/css-writing-modes/forms/WEB_FEATURES.yml - Form controls (85 files)

WEB_FEATURES.yml files created:
✅ css/css-writing-modes/parsing/WEB_FEATURES.yml - Parsing tests (3 files) using 'writing-mode-*' pattern
✅ css/css-writing-modes/crashtests/WEB_FEATURES.yml - Crash tests (7 files) using '*' pattern
Feature: word-spacing
Reference: https://github.com/web-platform-dx/web-features/blob/main/features/word-spacing.yml

Results:
- Total matches found: 584
- Filtered: 81 files
- Directories classified: 5

WEB_FEATURES.yml files created:
- ✅ css/CSS2/css1/WEB_FEATURES.yml - CSS1 word-spacing tests (2 files) using `'*word-sp*'` pattern
- ✅ css/CSS2/text/WEB_FEATURES.yml - CSS2 word-spacing tests (69 files) using `word-spacing-*` pattern
-  ✅ css/css-text/word-spacing/WEB_FEATURES.yml - Modern word-spacing tests (6 files) using `'*'` pattern
- ✅ svg/import/WEB_FEATURES.yml - SVG word-spacing test (1 file) - `text-spacing-01-b-manual.svg`

WEB_FEATURES.yml files modified:
-  ✅ css/css-text/parsing/WEB_FEATURES.yml - Parsing tests (3 files) using `word-spacing-*` pattern

Excluded:
❌ css/css-text/text-align/ - Tests text-align feature, not word-spacing
❌ css/css-text/tab-size/ - Tests tab-size feature
❌ css/css-transitions/ - Tests transitions, not word-spacing
❌ clipboard-apis/ - Tests clipboard APIs
❌ mathml/ - Tests MathML styling
Feature: word-break-break-word
Reference: https://github.com/web-platform-dx/web-features/blob/main/features/word-break-break-word.yml

Note: This is the deprecated word-break: break-word value, now discouraged in favor of overflow-wrap: anywhere

Results:
- Total matches found: 271
- Filtered: 21 files

WEB_FEATURES.yml files created:
✅ css/css-text/word-break/WEB_FEATURES.yml - Word-break tests (9 files) using patterns: word-break-break-word-*, word-break-min-content-*

WEB_FEATURES.yml files modified:
✅ css/css-text/parsing/WEB_FEATURES.yml - Parsing tests (3 files) using word-break-* pattern
✅ css/css-text/white-space/WEB_FEATURES.yml - White-space interaction tests (9 files) - only files that use word-break: break-word CSS property and focus on testing word-break behavior

Excluded (75 files):
❌ css/css-text/white-space/ - Most files use overflow-wrap: break-word (different property) or test white-space/pre-wrap features primarily
❌ css/css-text/overflow-wrap/ - Tests overflow-wrap feature
❌ css/css-typed-om/ - Tests Typed OM APIs
❌ css/css-pseudo/parsing/ - Tests pseudo-element parsing
Feature: word-break-auto-phrase
Reference: https://github.com/web-platform-dx/web-features/blob/main/features/word-break-auto-phrase.yml

Note: This feature enables automatic phrase-based wrapping for CJK languages (Chinese, Japanese, Korean)

Results:
- Total matches found: 84
- Filtered: 16 files

WEB_FEATURES.yml files created:
✅ css/css-text/word-break/auto-phrase/WEB_FEATURES.yml - Auto-phrase tests (16 files) using '*' pattern

Excluded (21 files):
❌ css/css-text/word-space-transform/ - Tests word-space-transform with auto-phrase value, not word-break: auto-phrase
❌ css/css-text/parsing/ - General word-break and word-space-transform parsing tests (not specific to auto-phrase)
Feature: word-break
Reference: https://github.com/web-platform-dx/web-features/blob/main/features/word-break.yml

Note: This feature covers word-break: normal, break-all, and keep-all values. The word-break: break-word and word-break: auto-phrase values are separate features already classified.

Results:
- Total matches found: 731
- Filtered: 88 files

WEB_FEATURES.yml files updated:
✅ css/css-text/word-break/WEB_FEATURES.yml - Main word-break tests (79 files) using patterns for break-all, keep-all, normal, etc.
✅ css/css-text/parsing/WEB_FEATURES.yml - Parsing tests (3 files) using 'word-break-*' pattern
✅ css/css-text/line-break/WEB_FEATURES.yml - Interaction tests with line-break property (5 files)
✅ css/css-text/white-space/WEB_FEATURES.yml - Interaction test with white-space property (1 file)

Excluded (~643 files):
❌ css/css-text/word-break/word-break-break-word-* - Already classified as word-break-break-word feature (9 files)
❌ css/css-text/word-break/auto-phrase/ - Already classified as word-break-auto-phrase feature (17 files)
❌ css/css-text/white-space/ - Most files primarily test white-space property without help links to word-break (~40 files)
❌ css/css-text/overflow-wrap/ - Primary focus on overflow-wrap property (9 files)
❌ Other directories - Tests focused on writing-modes, hyphens, letter-spacing, etc. where word-break is incidental (~568 files)
Feature: z-index
Reference: https://github.com/web-platform-dx/web-features/blob/main/features/z-index.yml

Results:
- Total matches found: 1467
- Filtered: 57 files

WEB_FEATURES.yml files updated:
✅ css/CSS2/zindex/WEB_FEATURES.yml - Legacy CSS2 z-index tests (47 files) using '**' pattern
✅ css/CSS2/zorder/WEB_FEATURES.yml - Core z-index tests (2 files) using '**' pattern (changed from single file)
✅ css/css-position/WEB_FEATURES.yml - Modern z-index positioning tests (3 files) using '*z-index*' pattern
✅ css/css-position/parsing/WEB_FEATURES.yml - Z-index parsing tests (4 files) using 'z-index-*' pattern
✅ svg/render/order/WEB_FEATURES.yml - SVG z-index rendering test (1 file)

Removed mappings (11 files):
❌ css/css-pseudo/WEB_FEATURES.yml - Removed highlight-z-index-* (2 files) - Tests highlight pseudo-element z-index behavior, which is a separate feature
❌ css/css-transforms/WEB_FEATURES.yml - Removed z-index-does-not-apply.html (1 file) - Tests that z-index doesn't apply to non-positioned transformed elements, focuses on transforms not z-index
❌ css/css-transitions/animations/WEB_FEATURES.yml - Removed entire file (1 file) - Tests z-index interpolation/animation, not core z-index
❌ css/css-typed-om/the-stylepropertymap/properties/WEB_FEATURES.yml - Removed entire file (1 file) - Tests Typed OM API for z-index, not core z-index property
❌ css/css-will-change/WEB_FEATURES.yml - Removed entire file (4 files) - Tests will-change stacking context creation, not z-index feature
❌ css/css-display/run-in/WEB_FEATURES.yml - Removed entire file (1 file) - Tests deprecated run-in display value with z-index
❌ html/editing/dnd/draggable-areas/WEB_FEATURES.yml - Removed entire file (1 file) - Tests drag-and-drop with z-index styling

Excluded (~1410 files):
❌ css/CSS2/tables/ - Tests table layout with z-index used in styling (~231 files)
❌ css/css-text/white-space/ - Tests white-space property with z-index used for visual testing (~130 files)
❌ css/css-flexbox/ - Tests flexbox with z-index used in stacking (~93 files)
❌ css/css-grid/ - Tests grid layout with z-index used for layering (~140 files)
❌ css/css-writing-modes/ - Tests writing modes with z-index used in visual arrangement (~82 files)
❌ css/css-text/ - Tests various text properties with z-index in styling (~120 files)
❌ css/css-sizing/ - Tests sizing properties with z-index used for layout (~56 files)
❌ scroll-animations/ - Tests scroll animations with z-index for visual effects (~29 files)
❌ css/css-transforms/ - Tests transforms feature, not z-index (23 files)
❌ css/css-will-change/ - Tests will-change feature, not z-index (22 files)
❌ Other directories - Tests where z-index appears in styling or comments but isn't the focus (~506 files)
features:
- name: word-spacing
files:
- "*word-sp*"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This pattern made me wonder if it matching some type of word-spacing like word-spising or similar, but that's not the case, the tests are called c541-word-sp-000.xht and c541-word-sp-001.xht.

Since this test suite basically doesn't change, here I think a very specific pattern is OK:

Suggested change
- "*word-sp*"
- "c541-word-sp-*"

features:
- name: line-break
files: "**"
- name: word-break
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's exclude these, just from the directory I think the intention is to test line-break and I think the use of word-break in the test is to support the testing of line-break.

- word-spacing-*
- name: word-break-break-word
files:
- word-break-*
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the same pattern as below, should all of these tests really be mapped to both word-break-break-word and word-break?

files:
- white-space-collapse-*
- line-edge-white-space-collapse-*
- name: word-break-break-word
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The directory name suggests and the title of the first test confirms that these tests are for white-space: break-spaces. word-break: break-word is used, but I don't think these tests should be mapped to word-break or word-break-break-word. There's a separate directory for those tests.

files:
- word-break-break-word-crash-001.html
- word-break-break-word-overflow-wrap-interactions.html
- word-break-min-content-*
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

word-break-min-content-007.html doesn't have word-break: break-word in <title> as the other tests do, but does in <meta name="assert>. I thinks mapping it is correct.

features:
- name: word-break-auto-phrase
files:
- '*' No newline at end of file
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason to not use files: "**" here? The difference is recursion, and there aren't any tests in subdirectories that need to be excluded here.

features:
- name: word-spacing
files:
- '*' No newline at end of file
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto.

- "*vlr*"
- "*vrl*"
- name: writing-mode
files: "**"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will also include the above. How about excluding those patterns here, so first "*" and then some excludes?

features:
- name: word-spacing
files:
- text-spacing-01-b-manual.svg No newline at end of file
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test is for both letter-spacing and word-spacing, so I think we should not map it to any feature. It's not great, but what we've done so far.

- text-inline-size-201.svg
- text-multiline-002.svg
- text-shape-inside-002.svg
- text-text-anchor-002.svg
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These tests were just removed in 727699f.

The other tests seem to be for other features primarily but happen to use writing-mode. I think not mapping these tests to any feature seems best for now, at least it's not writing-mode primarily.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants