contribute a fix_data.yaml file to enable 'dart fix' renames (#141)

contribute a fix_data.yaml file to enable 'dart fix' renames
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6ecc128..51613c8 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -79,3 +79,23 @@
         run: dart tool/update_bindings.dart
       - name: Analyze code
         run: dart analyze --fatal-infos
+
+  # Test the contributed `dart fix` fixes.
+  dart-fix:
+    needs: analyze
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [ubuntu-latest]
+        sdk: [main]
+    steps:
+      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
+      - uses: dart-lang/setup-dart@b64355ae6ca0b5d484f0106a033dd1388965d06d
+        with:
+          sdk: ${{ matrix.sdk }}
+      - name: Install Dart dependencies
+        run: dart pub get
+      - name: Test the declarative fixes
+        run: dart fix --compare-to-golden
+        working-directory: test_fixes
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2e3c6fc..f658077 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
 ## 0.5.0-wip
 
 - Redeprecate APIs that were deprecated in `0.4.1` but undeprecated in `0.4.2`.
+- Add support for `dart fix` migrations from `dart:html` classes to
+  `package:web` classes.
+- Contribute a markdown file for the renamed classes from `dart:html` to
+  `package:web` (see [renames.md](tool/renames.md)).
 
 ## 0.4.2
 
diff --git a/README.md b/README.md
index fe252a5..4873332 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@
 import 'package:web/web.dart';
 
 void main() {
-  final div = document.querySelector('div') as HTMLDivElement;
+  final div = document.querySelector('div')!;
   div.text = 'Text set at ${DateTime.now()}';
 }
 ```
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 488ec28..fde7bc0 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -6,6 +6,8 @@
     strict-casts: true
     strict-inference: true
     strict-raw-types: true
+  exclude:
+    - test_fixes/**
 
   errors:
     # Ideally we'd fix all of these - or ignore them at the line-level where
diff --git a/example/example.dart b/example/example.dart
index aeb1d1f..6e38e5c 100644
--- a/example/example.dart
+++ b/example/example.dart
@@ -5,6 +5,6 @@
 import 'package:web/web.dart';
 
 void main() {
-  final div = document.querySelector('div') as HTMLDivElement;
+  final div = document.querySelector('div')!;
   div.text = 'Text set at ${DateTime.now()}';
 }
diff --git a/lib/fix_data.yaml b/lib/fix_data.yaml
new file mode 100644
index 0000000..f3ae2ab
--- /dev/null
+++ b/lib/fix_data.yaml
@@ -0,0 +1,1396 @@
+# Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+# Please add new fixes to the top of the file. For documentation about this file
+# format, see https://dart.dev/go/data-driven-fixes.
+
+version: 1
+
+transforms:
+  # AnchorElement => HTMLAnchorElement
+  - title: "Rename to 'HTMLAnchorElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'AnchorElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLAnchorElement'
+  # AreaElement => HTMLAreaElement
+  - title: "Rename to 'HTMLAreaElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'AreaElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLAreaElement'
+  # AudioElement => HTMLAudioElement (see test_fixes/README.md)
+  # - title: "Rename to 'HTMLAudioElement'"
+  #   date: 2024-01-12
+  #   element:
+  #     uris: [ 'package:web/web.dart' ]
+  #     class: 'AudioElement'
+  #   changes:
+  #     - kind: 'rename'
+  #       newName: 'HTMLAudioElement'
+  # BaseElement => HTMLBaseElement
+  - title: "Rename to 'HTMLBaseElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'BaseElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLBaseElement'
+  # BluetoothRemoteGattDescriptor => BluetoothRemoteGATTDescriptor
+  - title: "Rename to 'BluetoothRemoteGATTDescriptor'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'BluetoothRemoteGattDescriptor'
+    changes:
+      - kind: 'rename'
+        newName: 'BluetoothRemoteGATTDescriptor'
+  # BodyElement => HTMLBodyElement
+  - title: "Rename to 'HTMLBodyElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'BodyElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLBodyElement'
+  # BRElement => HTMLBRElement
+  - title: "Rename to 'HTMLBRElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'BRElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLBRElement'
+  # ButtonElement => HTMLButtonElement
+  - title: "Rename to 'HTMLButtonElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'ButtonElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLButtonElement'
+  # CanvasElement => HTMLCanvasElement (see test_fixes/README.md)
+  # - title: "Rename to 'HTMLCanvasElement'"
+  #   date: 2024-01-12
+  #   element:
+  #     uris: [ 'package:web/web.dart' ]
+  #     class: 'CanvasElement'
+  #   changes:
+  #     - kind: 'rename'
+  #       newName: 'HTMLCanvasElement'
+  # CDataSection => CDATASection
+  - title: "Rename to 'CDATASection'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CDataSection'
+    changes:
+      - kind: 'rename'
+        newName: 'CDATASection'
+  # Css => CSS
+  - title: "Rename to 'CSS'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'Css'
+    changes:
+      - kind: 'rename'
+        newName: 'CSS'
+  # CssConditionRule => CSSConditionRule
+  - title: "Rename to 'CSSConditionRule'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssConditionRule'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSConditionRule'
+  # CssFontFaceRule => CSSFontFaceRule
+  - title: "Rename to 'CSSFontFaceRule'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssFontFaceRule'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSFontFaceRule'
+  # CssGroupingRule => CSSGroupingRule
+  - title: "Rename to 'CSSGroupingRule'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssGroupingRule'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSGroupingRule'
+  # CssImageValue => CSSImageValue
+  - title: "Rename to 'CSSImageValue'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssImageValue'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSImageValue'
+  # CssImportRule => CSSImportRule
+  - title: "Rename to 'CSSImportRule'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssImportRule'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSImportRule'
+  # CssKeyframeRule => CSSKeyframeRule
+  - title: "Rename to 'CSSKeyframeRule'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssKeyframeRule'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSKeyframeRule'
+  # CssKeyframesRule => CSSKeyframesRule
+  - title: "Rename to 'CSSKeyframesRule'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssKeyframesRule'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSKeyframesRule'
+  # CssKeywordValue => CSSKeywordValue
+  - title: "Rename to 'CSSKeywordValue'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssKeywordValue'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSKeywordValue'
+  # CssMatrixComponent => CSSMatrixComponent
+  - title: "Rename to 'CSSMatrixComponent'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssMatrixComponent'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSMatrixComponent'
+  # CssMediaRule => CSSMediaRule
+  - title: "Rename to 'CSSMediaRule'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssMediaRule'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSMediaRule'
+  # CssNamespaceRule => CSSNamespaceRule
+  - title: "Rename to 'CSSNamespaceRule'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssNamespaceRule'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSNamespaceRule'
+  # CssNumericValue => CSSNumericValue
+  - title: "Rename to 'CSSNumericValue'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssNumericValue'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSNumericValue'
+  # CssPageRule => CSSPageRule
+  - title: "Rename to 'CSSPageRule'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssPageRule'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSPageRule'
+  # CssPerspective => CSSPerspective
+  - title: "Rename to 'CSSPerspective'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssPerspective'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSPerspective'
+  # CssRule => CSSRule
+  - title: "Rename to 'CSSRule'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssRule'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSRule'
+  # CssScale => CSSScale
+  - title: "Rename to 'CSSScale'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssScale'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSScale'
+  # CssSkew => CSSSkew
+  - title: "Rename to 'CSSSkew'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssSkew'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSSkew'
+  # CssStyleDeclaration => CSSStyleDeclaration (see test_fixes/README.md)
+  # - title: "Rename to 'CSSStyleDeclaration'"
+  #   date: 2024-01-12
+  #   element:
+  #     uris: [ 'package:web/web.dart' ]
+  #     class: 'CssStyleDeclaration'
+  #   changes:
+  #     - kind: 'rename'
+  #       newName: 'CSSStyleDeclaration'
+  # CssStyleRule => CSSStyleRule
+  - title: "Rename to 'CSSStyleRule'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssStyleRule'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSStyleRule'
+  # CssStyleSheet => CSSStyleSheet
+  - title: "Rename to 'CSSStyleSheet'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssStyleSheet'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSStyleSheet'
+  # CssStyleValue => CSSStyleValue
+  - title: "Rename to 'CSSStyleValue'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssStyleValue'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSStyleValue'
+  # CssSupportsRule => CSSSupportsRule
+  - title: "Rename to 'CSSSupportsRule'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssSupportsRule'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSSupportsRule'
+  # CssTransformComponent => CSSTransformComponent
+  - title: "Rename to 'CSSTransformComponent'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssTransformComponent'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSTransformComponent'
+  # CssTransformValue => CSSTransformValue
+  - title: "Rename to 'CSSTransformValue'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssTransformValue'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSTransformValue'
+  # CssUnitValue => CSSUnitValue
+  - title: "Rename to 'CSSUnitValue'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssUnitValue'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSUnitValue'
+  # CssUnparsedValue => CSSUnparsedValue
+  - title: "Rename to 'CSSUnparsedValue'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssUnparsedValue'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSUnparsedValue'
+  # CssVariableReferenceValue => CSSVariableReferenceValue
+  - title: "Rename to 'CSSVariableReferenceValue'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'CssVariableReferenceValue'
+    changes:
+      - kind: 'rename'
+        newName: 'CSSVariableReferenceValue'
+  # DataElement => HTMLDataElement
+  - title: "Rename to 'HTMLDataElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DataElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLDataElement'
+  # DataListElement => HTMLDataListElement
+  - title: "Rename to 'HTMLDataListElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DataListElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLDataListElement'
+  # DetailsElement => HTMLDetailsElement
+  - title: "Rename to 'HTMLDetailsElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DetailsElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLDetailsElement'
+  # DialogElement => HTMLDialogElement
+  - title: "Rename to 'HTMLDialogElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DialogElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLDialogElement'
+  # DivElement => HTMLDivElement
+  - title: "Rename to 'HTMLDivElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DivElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLDivElement'
+  # DListElement => HTMLDListElement
+  - title: "Rename to 'HTMLDListElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DListElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLDListElement'
+  # DomException => DOMException
+  - title: "Rename to 'DOMException'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomException'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMException'
+  # DomImplementation => DOMImplementation
+  - title: "Rename to 'DOMImplementation'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomImplementation'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMImplementation'
+  # DomMatrix => DOMMatrix
+  - title: "Rename to 'DOMMatrix'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomMatrix'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMMatrix'
+  # DomMatrixReadOnly => DOMMatrixReadOnly
+  - title: "Rename to 'DOMMatrixReadOnly'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomMatrixReadOnly'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMMatrixReadOnly'
+  # DomParser => DOMParser
+  - title: "Rename to 'DOMParser'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomParser'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMParser'
+  # DomPoint => DOMPoint
+  - title: "Rename to 'DOMPoint'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomPoint'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMPoint'
+  # DomPointReadOnly => DOMPointReadOnly
+  - title: "Rename to 'DOMPointReadOnly'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomPointReadOnly'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMPointReadOnly'
+  # DomQuad => DOMQuad
+  - title: "Rename to 'DOMQuad'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomQuad'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMQuad'
+  # DomRectList => DOMRectList
+  - title: "Rename to 'DOMRectList'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomRectList'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMRectList'
+  # DomRectReadOnly => DOMRectReadOnly
+  - title: "Rename to 'DOMRectReadOnly'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomRectReadOnly'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMRectReadOnly'
+  # DomStringList => DOMStringList
+  - title: "Rename to 'DOMStringList'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomStringList'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMStringList'
+  # DomStringMap => DOMStringMap
+  - title: "Rename to 'DOMStringMap'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomStringMap'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMStringMap'
+  # DomTokenList => DOMTokenList
+  - title: "Rename to 'DOMTokenList'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'DomTokenList'
+    changes:
+      - kind: 'rename'
+        newName: 'DOMTokenList'
+  # EmbedElement => HTMLEmbedElement
+  - title: "Rename to 'HTMLEmbedElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'EmbedElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLEmbedElement'
+  # Entry => FileSystemEntry
+  - title: "Rename to 'FileSystemEntry'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'Entry'
+    changes:
+      - kind: 'rename'
+        newName: 'FileSystemEntry'
+  # FieldSetElement => HTMLFieldSetElement
+  - title: "Rename to 'HTMLFieldSetElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'FieldSetElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLFieldSetElement'
+  # FileEntry => FileSystemFileEntry
+  - title: "Rename to 'FileSystemFileEntry'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'FileEntry'
+    changes:
+      - kind: 'rename'
+        newName: 'FileSystemFileEntry'
+  # FormElement => HTMLFormElement
+  - title: "Rename to 'HTMLFormElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'FormElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLFormElement'
+  # Geoposition => GeolocationPosition
+  - title: "Rename to 'GeolocationPosition'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'Geoposition'
+    changes:
+      - kind: 'rename'
+        newName: 'GeolocationPosition'
+  # HeadElement => HTMLHeadElement
+  - title: "Rename to 'HTMLHeadElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'HeadElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLHeadElement'
+  # HeadingElement => HTMLHeadingElement
+  - title: "Rename to 'HTMLHeadingElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'HeadingElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLHeadingElement'
+  # HRElement => HTMLHRElement
+  - title: "Rename to 'HTMLHRElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'HRElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLHRElement'
+  # HtmlCollection => HTMLCollection
+  - title: "Rename to 'HTMLCollection'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'HtmlCollection'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLCollection'
+  # HtmlDocument => Document
+  - title: "Rename to 'Document'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'HtmlDocument'
+    changes:
+      - kind: 'rename'
+        newName: 'Document'
+  # HtmlElement => HTMLElement (see test_fixes/README.md)
+  # - title: "Rename to 'HTMLElement'"
+  #   date: 2024-01-12
+  #   element:
+  #     uris: [ 'package:web/web.dart' ]
+  #     class: 'HtmlElement'
+  #   changes:
+  #     - kind: 'rename'
+  #       newName: 'HTMLElement'
+  # HtmlFormControlsCollection => HTMLFormControlsCollection
+  - title: "Rename to 'HTMLFormControlsCollection'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'HtmlFormControlsCollection'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLFormControlsCollection'
+  # HtmlHtmlElement => HTMLHtmlElement
+  - title: "Rename to 'HTMLHtmlElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'HtmlHtmlElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLHtmlElement'
+  # HtmlHyperlinkElementUtils => HTMLHyperlinkElementUtils
+  - title: "Rename to 'HTMLHyperlinkElementUtils'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'HtmlHyperlinkElementUtils'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLHyperlinkElementUtils'
+  # HtmlOptionsCollection => HTMLOptionsCollection
+  - title: "Rename to 'HTMLOptionsCollection'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'HtmlOptionsCollection'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLOptionsCollection'
+  # HttpRequest => XMLHttpRequest (see test_fixes/README.md)
+  # - title: "Rename to 'XMLHttpRequest'"
+  #   date: 2024-01-12
+  #   element:
+  #     uris: [ 'package:web/web.dart' ]
+  #     class: 'HttpRequest'
+  #   changes:
+  #     - kind: 'rename'
+  #       newName: 'XMLHttpRequest'
+  # HttpRequestEventTarget => XMLHttpRequestEventTarget
+  - title: "Rename to 'XMLHttpRequestEventTarget'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'HttpRequestEventTarget'
+    changes:
+      - kind: 'rename'
+        newName: 'XMLHttpRequestEventTarget'
+  # HttpRequestUpload => XMLHttpRequestUpload
+  - title: "Rename to 'XMLHttpRequestUpload'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'HttpRequestUpload'
+    changes:
+      - kind: 'rename'
+        newName: 'XMLHttpRequestUpload'
+  # IFrameElement => HTMLIFrameElement
+  - title: "Rename to 'HTMLIFrameElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'IFrameElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLIFrameElement'
+  # ImageElement => HTMLImageElement (see test_fixes/README.md)
+  # - title: "Rename to 'HTMLImageElement'"
+  #   date: 2024-01-12
+  #   element:
+  #     uris: [ 'package:web/web.dart' ]
+  #     class: 'ImageElement'
+  #   changes:
+  #     - kind: 'rename'
+  #       newName: 'HTMLImageElement'
+  # InputElement => HTMLInputElement
+  - title: "Rename to 'HTMLInputElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'InputElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLInputElement'
+  # LabelElement => HTMLLabelElement
+  - title: "Rename to 'HTMLLabelElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'LabelElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLLabelElement'
+  # LegendElement => HTMLLegendElement
+  - title: "Rename to 'HTMLLegendElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'LegendElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLLegendElement'
+  # LIElement => HTMLLIElement
+  - title: "Rename to 'HTMLLIElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'LIElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLLIElement'
+  # LinkElement => HTMLLinkElement
+  - title: "Rename to 'HTMLLinkElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'LinkElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLLinkElement'
+  # MapElement => HTMLMapElement
+  - title: "Rename to 'HTMLMapElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MapElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLMapElement'
+  # MediaElement => HTMLMediaElement
+  - title: "Rename to 'HTMLMediaElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MediaElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLMediaElement'
+  # MenuElement => HTMLMenuElement
+  - title: "Rename to 'HTMLMenuElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MenuElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLMenuElement'
+  # MetaElement => HTMLMetaElement
+  - title: "Rename to 'HTMLMetaElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MetaElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLMetaElement'
+  # MeterElement => HTMLMeterElement
+  - title: "Rename to 'HTMLMeterElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MeterElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLMeterElement'
+  # MidiAccess => MIDIAccess
+  - title: "Rename to 'MIDIAccess'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MidiAccess'
+    changes:
+      - kind: 'rename'
+        newName: 'MIDIAccess'
+  # MidiConnectionEvent => MIDIConnectionEvent
+  - title: "Rename to 'MIDIConnectionEvent'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MidiConnectionEvent'
+    changes:
+      - kind: 'rename'
+        newName: 'MIDIConnectionEvent'
+  # MidiInput => MIDIInput
+  - title: "Rename to 'MIDIInput'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MidiInput'
+    changes:
+      - kind: 'rename'
+        newName: 'MIDIInput'
+  # MidiInputMap => MIDIInputMap
+  - title: "Rename to 'MIDIInputMap'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MidiInputMap'
+    changes:
+      - kind: 'rename'
+        newName: 'MIDIInputMap'
+  # MidiMessageEvent => MIDIMessageEvent
+  - title: "Rename to 'MIDIMessageEvent'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MidiMessageEvent'
+    changes:
+      - kind: 'rename'
+        newName: 'MIDIMessageEvent'
+  # MidiOutput => MIDIOutput
+  - title: "Rename to 'MIDIOutput'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MidiOutput'
+    changes:
+      - kind: 'rename'
+        newName: 'MIDIOutput'
+  # MidiOutputMap => MIDIOutputMap
+  - title: "Rename to 'MIDIOutputMap'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MidiOutputMap'
+    changes:
+      - kind: 'rename'
+        newName: 'MIDIOutputMap'
+  # MidiPort => MIDIPort
+  - title: "Rename to 'MIDIPort'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'MidiPort'
+    changes:
+      - kind: 'rename'
+        newName: 'MIDIPort'
+  # ModElement => HTMLModElement
+  - title: "Rename to 'HTMLModElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'ModElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLModElement'
+  # ObjectElement => HTMLObjectElement
+  - title: "Rename to 'HTMLObjectElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'ObjectElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLObjectElement'
+  # OListElement => HTMLOListElement
+  - title: "Rename to 'HTMLOListElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'OListElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLOListElement'
+  # OptGroupElement => HTMLOptGroupElement
+  - title: "Rename to 'HTMLOptGroupElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'OptGroupElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLOptGroupElement'
+  # OptionElement => HTMLOptionElement
+  - title: "Rename to 'HTMLOptionElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'OptionElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLOptionElement'
+  # OutputElement => HTMLOutputElement
+  - title: "Rename to 'HTMLOutputElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'OutputElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLOutputElement'
+  # ParagraphElement => HTMLParagraphElement
+  - title: "Rename to 'HTMLParagraphElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'ParagraphElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLParagraphElement'
+  # ParamElement => HTMLParamElement
+  - title: "Rename to 'HTMLParamElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'ParamElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLParamElement'
+  # PictureElement => HTMLPictureElement
+  - title: "Rename to 'HTMLPictureElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'PictureElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLPictureElement'
+  # PositionError => GeolocationPositionError
+  - title: "Rename to 'GeolocationPositionError'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'PositionError'
+    changes:
+      - kind: 'rename'
+        newName: 'GeolocationPositionError'
+  # PreElement => HTMLPreElement
+  - title: "Rename to 'HTMLPreElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'PreElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLPreElement'
+  # ProgressElement => HTMLProgressElement
+  - title: "Rename to 'HTMLProgressElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'ProgressElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLProgressElement'
+  # QuoteElement => HTMLQuoteElement
+  - title: "Rename to 'HTMLQuoteElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'QuoteElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLQuoteElement'
+  # RtcCertificate => RTCCertificate
+  - title: "Rename to 'RTCCertificate'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcCertificate'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCCertificate'
+  # RtcDataChannel => RTCDataChannel
+  - title: "Rename to 'RTCDataChannel'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcDataChannel'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCDataChannel'
+  # RtcDataChannelEvent => RTCDataChannelEvent
+  - title: "Rename to 'RTCDataChannelEvent'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcDataChannelEvent'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCDataChannelEvent'
+  # RtcDtmfSender => RTCDTMFSender
+  - title: "Rename to 'RTCDTMFSender'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcDtmfSender'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCDTMFSender'
+  # RtcDtmfToneChangeEvent => RTCDTMFToneChangeEvent
+  - title: "Rename to 'RTCDTMFToneChangeEvent'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcDtmfToneChangeEvent'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCDTMFToneChangeEvent'
+  # RtcIceCandidate => RTCIceCandidate
+  - title: "Rename to 'RTCIceCandidate'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcIceCandidate'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCIceCandidate'
+  # RtcPeerConnection => RTCPeerConnection
+  - title: "Rename to 'RTCPeerConnection'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcPeerConnection'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCPeerConnection'
+  # RtcPeerConnectionIceEvent => RTCPeerConnectionIceEvent
+  - title: "Rename to 'RTCPeerConnectionIceEvent'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcPeerConnectionIceEvent'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCPeerConnectionIceEvent'
+  # RtcRtpContributingSource => RTCRtpContributingSource
+  - title: "Rename to 'RTCRtpContributingSource'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcRtpContributingSource'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCRtpContributingSource'
+  # RtcRtpReceiver => RTCRtpReceiver
+  - title: "Rename to 'RTCRtpReceiver'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcRtpReceiver'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCRtpReceiver'
+  # RtcRtpSender => RTCRtpSender
+  - title: "Rename to 'RTCRtpSender'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcRtpSender'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCRtpSender'
+  # RtcSessionDescription => RTCSessionDescription
+  - title: "Rename to 'RTCSessionDescription'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcSessionDescription'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCSessionDescription'
+  # RtcStatsReport => RTCStatsReport
+  - title: "Rename to 'RTCStatsReport'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcStatsReport'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCStatsReport'
+  # RtcTrackEvent => RTCTrackEvent
+  - title: "Rename to 'RTCTrackEvent'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'RtcTrackEvent'
+    changes:
+      - kind: 'rename'
+        newName: 'RTCTrackEvent'
+  # ScriptElement => HTMLScriptElement
+  - title: "Rename to 'HTMLScriptElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'ScriptElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLScriptElement'
+  # SelectElement => HTMLSelectElement
+  - title: "Rename to 'HTMLSelectElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'SelectElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLSelectElement'
+  # SlotElement => HTMLSlotElement
+  - title: "Rename to 'HTMLSlotElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'SlotElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLSlotElement'
+  # SourceElement => HTMLSourceElement
+  - title: "Rename to 'HTMLSourceElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'SourceElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLSourceElement'
+  # SpanElement => HTMLSpanElement
+  - title: "Rename to 'HTMLSpanElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'SpanElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLSpanElement'
+  # SpeechRecognitionError => SpeechRecognitionErrorEvent
+  - title: "Rename to 'SpeechRecognitionErrorEvent'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'SpeechRecognitionError'
+    changes:
+      - kind: 'rename'
+        newName: 'SpeechRecognitionErrorEvent'
+  # StyleElement => HTMLStyleElement
+  - title: "Rename to 'HTMLStyleElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'StyleElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLStyleElement'
+  # StylePropertyMapReadonly => StylePropertyMapReadOnly
+  - title: "Rename to 'StylePropertyMapReadOnly'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'StylePropertyMapReadonly'
+    changes:
+      - kind: 'rename'
+        newName: 'StylePropertyMapReadOnly'
+  # TableCaptionElement => HTMLTableCaptionElement
+  - title: "Rename to 'HTMLTableCaptionElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'TableCaptionElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLTableCaptionElement'
+  # TableColElement => HTMLTableColElement
+  - title: "Rename to 'HTMLTableColElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'TableColElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLTableColElement'
+  # TableElement => HTMLTableElement
+  - title: "Rename to 'HTMLTableElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'TableElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLTableElement'
+  # TableRowElement => HTMLTableRowElement
+  - title: "Rename to 'HTMLTableRowElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'TableRowElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLTableRowElement'
+  # TableSectionElement => HTMLTableSectionElement
+  - title: "Rename to 'HTMLTableSectionElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'TableSectionElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLTableSectionElement'
+  # TemplateElement => HTMLTemplateElement
+  - title: "Rename to 'HTMLTemplateElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'TemplateElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLTemplateElement'
+  # TextAreaElement => HTMLTextAreaElement
+  - title: "Rename to 'HTMLTextAreaElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'TextAreaElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLTextAreaElement'
+  # TimeElement => HTMLTimeElement
+  - title: "Rename to 'HTMLTimeElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'TimeElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLTimeElement'
+  # TitleElement => HTMLTitleElement
+  - title: "Rename to 'HTMLTitleElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'TitleElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLTitleElement'
+  # TrackElement => HTMLTrackElement
+  - title: "Rename to 'HTMLTrackElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'TrackElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLTrackElement'
+  # TrustedHtml => TrustedHTML
+  - title: "Rename to 'TrustedHTML'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'TrustedHtml'
+    changes:
+      - kind: 'rename'
+        newName: 'TrustedHTML'
+  # TrustedScriptUrl => TrustedScriptURL
+  - title: "Rename to 'TrustedScriptURL'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'TrustedScriptUrl'
+    changes:
+      - kind: 'rename'
+        newName: 'TrustedScriptURL'
+  # UListElement => HTMLUListElement
+  - title: "Rename to 'HTMLUListElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'UListElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLUListElement'
+  # UnderlyingSourceBase => UnderlyingSource
+  - title: "Rename to 'UnderlyingSource'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'UnderlyingSourceBase'
+    changes:
+      - kind: 'rename'
+        newName: 'UnderlyingSource'
+  # UnknownElement => HTMLUnknownElement
+  - title: "Rename to 'HTMLUnknownElement'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'UnknownElement'
+    changes:
+      - kind: 'rename'
+        newName: 'HTMLUnknownElement'
+  # Url => URL
+  - title: "Rename to 'URL'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'Url'
+    changes:
+      - kind: 'rename'
+        newName: 'URL'
+  # UrlSearchParams => URLSearchParams
+  - title: "Rename to 'URLSearchParams'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'UrlSearchParams'
+    changes:
+      - kind: 'rename'
+        newName: 'URLSearchParams'
+  # VideoElement => HTMLVideoElement (see test_fixes/README.md)
+  # - title: "Rename to 'HTMLVideoElement'"
+  #   date: 2024-01-12
+  #   element:
+  #     uris: [ 'package:web/web.dart' ]
+  #     class: 'VideoElement'
+  #   changes:
+  #     - kind: 'rename'
+  #       newName: 'HTMLVideoElement'
+  # VttCue => VTTCue
+  - title: "Rename to 'VTTCue'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'VttCue'
+    changes:
+      - kind: 'rename'
+        newName: 'VTTCue'
+  # VttRegion => VTTRegion
+  - title: "Rename to 'VTTRegion'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'VttRegion'
+    changes:
+      - kind: 'rename'
+        newName: 'VTTRegion'
+  # XmlDocument => XMLDocument
+  - title: "Rename to 'XMLDocument'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'XmlDocument'
+    changes:
+      - kind: 'rename'
+        newName: 'XMLDocument'
+  # XmlSerializer => XMLSerializer
+  - title: "Rename to 'XMLSerializer'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'XmlSerializer'
+    changes:
+      - kind: 'rename'
+        newName: 'XMLSerializer'
+  # XsltProcessor => XSLTProcessor
+  - title: "Rename to 'XSLTProcessor'"
+    date: 2024-01-12
+    element:
+      uris: [ 'package:web/web.dart' ]
+      class: 'XsltProcessor'
+    changes:
+      - kind: 'rename'
+        newName: 'XSLTProcessor'
diff --git a/test_fixes/README.md b/test_fixes/README.md
new file mode 100644
index 0000000..1619aa3
--- /dev/null
+++ b/test_fixes/README.md
@@ -0,0 +1,38 @@
+## What's here?
+
+For information about the files in this directory, see
+https://github.com/flutter/flutter/wiki/Data-driven-Fixes#testing.
+
+## Organization
+
+The contents of this directory are used to test the `dart fix` refactorings
+offered by this package. See `lib/dart_fix.yaml` for the fix definitions.
+
+Note that files in this directory are excluded from analysis.
+
+## Running the dart fix tests
+
+In order to test the fixes manually:
+
+```bash
+> cd test_fixes
+> dart fix --compare-to-golden
+```
+
+## Symbols excluded from the renames
+
+The helpers in `lib/src/helpers/renames.dart` define typedefs for dart:html to
+package:web renames of a few common classes; we don't offer quick fix renames
+for these symbols (though we may want to revisit having these typedefs).
+
+```dart
+typedef AudioElement = HTMLAudioElement;
+typedef CanvasElement = HTMLCanvasElement;
+typedef CssStyleDeclaration = CSSStyleDeclaration;
+typedef HtmlElement = HTMLElement;
+typedef ImageElement = HTMLImageElement;
+typedef VideoElement = HTMLVideoElement;
+```
+
+In addition, `lib/src/helpers/http.dart` defines an `HttpRequest` class, so we
+don't offer a quick fix to rename from `HttpRequest` to `XMLHttpRequest`.
diff --git a/test_fixes/analysis_options.yaml b/test_fixes/analysis_options.yaml
new file mode 100644
index 0000000..c68c565
--- /dev/null
+++ b/test_fixes/analysis_options.yaml
@@ -0,0 +1,2 @@
+# https://dart.dev/guides/language/analysis-options
+include: package:dart_flutter_team_lints/analysis_options.yaml
diff --git a/test_fixes/renames.dart b/test_fixes/renames.dart
new file mode 100644
index 0000000..b87f14a
--- /dev/null
+++ b/test_fixes/renames.dart
@@ -0,0 +1,162 @@
+// Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// ignore_for_file: unreachable_from_main
+
+import 'package:web/web.dart';
+
+late AnchorElement $0;
+late AreaElement $1;
+// late AudioElement/HTMLAudioElement $2;
+late BaseElement $3;
+late BluetoothRemoteGattDescriptor $4;
+late BodyElement $5;
+late BRElement $6;
+late ButtonElement $7;
+// late CanvasElement/HTMLCanvasElement $8;
+late CDataSection $9;
+late Css $10;
+late CssConditionRule $11;
+late CssFontFaceRule $12;
+late CssGroupingRule $13;
+late CssImageValue $14;
+late CssImportRule $15;
+late CssKeyframeRule $16;
+late CssKeyframesRule $17;
+late CssKeywordValue $18;
+late CssMatrixComponent $19;
+late CssMediaRule $20;
+late CssNamespaceRule $21;
+late CssNumericValue $22;
+late CssPageRule $23;
+late CssPerspective $24;
+late CssRule $25;
+late CssScale $26;
+late CssSkew $27;
+// late CssStyleDeclaration/CSSStyleDeclaration $28;
+late CssStyleRule $29;
+late CssStyleSheet $30;
+late CssStyleValue $31;
+late CssSupportsRule $32;
+late CssTransformComponent $33;
+late CssTransformValue $34;
+late CssUnitValue $35;
+late CssUnparsedValue $36;
+late CssVariableReferenceValue $37;
+late DataElement $38;
+late DataListElement $39;
+late DetailsElement $40;
+late DialogElement $41;
+late DivElement $42;
+late DListElement $43;
+late DomException $44;
+late DomImplementation $45;
+late DomMatrix $46;
+late DomMatrixReadOnly $47;
+late DomParser $48;
+late DomPoint $49;
+late DomPointReadOnly $50;
+late DomQuad $51;
+late DomRectList $52;
+late DomRectReadOnly $53;
+late DomStringList $54;
+late DomStringMap $55;
+late DomTokenList $56;
+late EmbedElement $57;
+late Entry $58;
+late FieldSetElement $59;
+late FileEntry $60;
+late FormElement $61;
+late Geoposition $62;
+late HeadElement $63;
+late HeadingElement $64;
+late HRElement $65;
+late HtmlCollection $66;
+late HtmlDocument $67;
+// late HtmlElement/HTMLElement $68;
+late HtmlFormControlsCollection $69;
+late HtmlHtmlElement $70;
+late HtmlHyperlinkElementUtils $71;
+late HtmlOptionsCollection $72;
+// late HttpRequest/XMLHttpRequest $73;
+late HttpRequestEventTarget $74;
+late HttpRequestUpload $75;
+late IFrameElement $76;
+// late ImageElement/HTMLImageElement $77;
+late InputElement $78;
+late LabelElement $79;
+late LegendElement $80;
+late LIElement $81;
+late LinkElement $82;
+late MapElement $83;
+late MediaElement $84;
+late MenuElement $85;
+late MetaElement $86;
+late MeterElement $87;
+late MidiAccess $88;
+late MidiConnectionEvent $89;
+late MidiInput $90;
+late MidiInputMap $91;
+late MidiMessageEvent $92;
+late MidiOutput $93;
+late MidiOutputMap $94;
+late MidiPort $95;
+late ModElement $96;
+late ObjectElement $97;
+late OListElement $98;
+late OptGroupElement $99;
+late OptionElement $100;
+late OutputElement $101;
+late ParagraphElement $102;
+late ParamElement $103;
+late PictureElement $104;
+late PositionError $105;
+late PreElement $106;
+late ProgressElement $107;
+late QuoteElement $108;
+late RtcCertificate $109;
+late RtcDataChannel $110;
+late RtcDataChannelEvent $111;
+late RtcDtmfSender $112;
+late RtcDtmfToneChangeEvent $113;
+late RtcIceCandidate $114;
+late RtcPeerConnection $115;
+late RtcPeerConnectionIceEvent $116;
+late RtcRtpContributingSource $117;
+late RtcRtpReceiver $118;
+late RtcRtpSender $119;
+late RtcSessionDescription $120;
+late RtcStatsReport $121;
+late RtcTrackEvent $122;
+late ScriptElement $123;
+late SelectElement $124;
+late SlotElement $125;
+late SourceElement $126;
+late SpanElement $127;
+late SpeechRecognitionError $128;
+late StyleElement $129;
+late StylePropertyMapReadonly $130;
+late TableCaptionElement $131;
+late TableColElement $132;
+late TableElement $133;
+late TableRowElement $134;
+late TableSectionElement $135;
+late TemplateElement $136;
+late TextAreaElement $137;
+late TimeElement $138;
+late TitleElement $139;
+late TrackElement $140;
+late TrustedHtml $141;
+late TrustedScriptUrl $142;
+late UListElement $143;
+late UnderlyingSourceBase $144;
+late UnknownElement $145;
+late Url $146;
+late UrlSearchParams $147;
+// late VideoElement/HTMLVideoElement $148;
+late VttCue $149;
+late VttRegion $150;
+late XmlDocument $151;
+late XmlSerializer $152;
+late XsltProcessor $153;
diff --git a/test_fixes/renames.dart.expect b/test_fixes/renames.dart.expect
new file mode 100644
index 0000000..d5ba3a0
--- /dev/null
+++ b/test_fixes/renames.dart.expect
@@ -0,0 +1,162 @@
+// Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// ignore_for_file: unreachable_from_main
+
+import 'package:web/web.dart';
+
+late HTMLAnchorElement $0;
+late HTMLAreaElement $1;
+// late AudioElement/HTMLAudioElement $2;
+late HTMLBaseElement $3;
+late BluetoothRemoteGATTDescriptor $4;
+late HTMLBodyElement $5;
+late HTMLBRElement $6;
+late HTMLButtonElement $7;
+// late CanvasElement/HTMLCanvasElement $8;
+late CDATASection $9;
+late CSS $10;
+late CSSConditionRule $11;
+late CSSFontFaceRule $12;
+late CSSGroupingRule $13;
+late CSSImageValue $14;
+late CSSImportRule $15;
+late CSSKeyframeRule $16;
+late CSSKeyframesRule $17;
+late CSSKeywordValue $18;
+late CSSMatrixComponent $19;
+late CSSMediaRule $20;
+late CSSNamespaceRule $21;
+late CSSNumericValue $22;
+late CSSPageRule $23;
+late CSSPerspective $24;
+late CSSRule $25;
+late CSSScale $26;
+late CSSSkew $27;
+// late CssStyleDeclaration/CSSStyleDeclaration $28;
+late CSSStyleRule $29;
+late CSSStyleSheet $30;
+late CSSStyleValue $31;
+late CSSSupportsRule $32;
+late CSSTransformComponent $33;
+late CSSTransformValue $34;
+late CSSUnitValue $35;
+late CSSUnparsedValue $36;
+late CSSVariableReferenceValue $37;
+late HTMLDataElement $38;
+late HTMLDataListElement $39;
+late HTMLDetailsElement $40;
+late HTMLDialogElement $41;
+late HTMLDivElement $42;
+late HTMLDListElement $43;
+late DOMException $44;
+late DOMImplementation $45;
+late DOMMatrix $46;
+late DOMMatrixReadOnly $47;
+late DOMParser $48;
+late DOMPoint $49;
+late DOMPointReadOnly $50;
+late DOMQuad $51;
+late DOMRectList $52;
+late DOMRectReadOnly $53;
+late DOMStringList $54;
+late DOMStringMap $55;
+late DOMTokenList $56;
+late HTMLEmbedElement $57;
+late FileSystemEntry $58;
+late HTMLFieldSetElement $59;
+late FileSystemFileEntry $60;
+late HTMLFormElement $61;
+late GeolocationPosition $62;
+late HTMLHeadElement $63;
+late HTMLHeadingElement $64;
+late HTMLHRElement $65;
+late HTMLCollection $66;
+late Document $67;
+// late HtmlElement/HTMLElement $68;
+late HTMLFormControlsCollection $69;
+late HTMLHtmlElement $70;
+late HTMLHyperlinkElementUtils $71;
+late HTMLOptionsCollection $72;
+// late HttpRequest/XMLHttpRequest $73;
+late XMLHttpRequestEventTarget $74;
+late XMLHttpRequestUpload $75;
+late HTMLIFrameElement $76;
+// late ImageElement/HTMLImageElement $77;
+late HTMLInputElement $78;
+late HTMLLabelElement $79;
+late HTMLLegendElement $80;
+late HTMLLIElement $81;
+late HTMLLinkElement $82;
+late HTMLMapElement $83;
+late HTMLMediaElement $84;
+late HTMLMenuElement $85;
+late HTMLMetaElement $86;
+late HTMLMeterElement $87;
+late MIDIAccess $88;
+late MIDIConnectionEvent $89;
+late MIDIInput $90;
+late MIDIInputMap $91;
+late MIDIMessageEvent $92;
+late MIDIOutput $93;
+late MIDIOutputMap $94;
+late MIDIPort $95;
+late HTMLModElement $96;
+late HTMLObjectElement $97;
+late HTMLOListElement $98;
+late HTMLOptGroupElement $99;
+late HTMLOptionElement $100;
+late HTMLOutputElement $101;
+late HTMLParagraphElement $102;
+late HTMLParamElement $103;
+late HTMLPictureElement $104;
+late GeolocationPositionError $105;
+late HTMLPreElement $106;
+late HTMLProgressElement $107;
+late HTMLQuoteElement $108;
+late RTCCertificate $109;
+late RTCDataChannel $110;
+late RTCDataChannelEvent $111;
+late RTCDTMFSender $112;
+late RTCDTMFToneChangeEvent $113;
+late RTCIceCandidate $114;
+late RTCPeerConnection $115;
+late RTCPeerConnectionIceEvent $116;
+late RTCRtpContributingSource $117;
+late RTCRtpReceiver $118;
+late RTCRtpSender $119;
+late RTCSessionDescription $120;
+late RTCStatsReport $121;
+late RTCTrackEvent $122;
+late HTMLScriptElement $123;
+late HTMLSelectElement $124;
+late HTMLSlotElement $125;
+late HTMLSourceElement $126;
+late HTMLSpanElement $127;
+late SpeechRecognitionErrorEvent $128;
+late HTMLStyleElement $129;
+late StylePropertyMapReadOnly $130;
+late HTMLTableCaptionElement $131;
+late HTMLTableColElement $132;
+late HTMLTableElement $133;
+late HTMLTableRowElement $134;
+late HTMLTableSectionElement $135;
+late HTMLTemplateElement $136;
+late HTMLTextAreaElement $137;
+late HTMLTimeElement $138;
+late HTMLTitleElement $139;
+late HTMLTrackElement $140;
+late TrustedHTML $141;
+late TrustedScriptURL $142;
+late HTMLUListElement $143;
+late UnderlyingSource $144;
+late HTMLUnknownElement $145;
+late URL $146;
+late URLSearchParams $147;
+// late VideoElement/HTMLVideoElement $148;
+late VTTCue $149;
+late VTTRegion $150;
+late XMLDocument $151;
+late XMLSerializer $152;
+late XSLTProcessor $153;
diff --git a/tool/renames.md b/tool/renames.md
new file mode 100644
index 0000000..cc38fcb
--- /dev/null
+++ b/tool/renames.md
@@ -0,0 +1,226 @@
+| dart:html                     | package:web                   |
+| ---                           | ---                           |
+| AbortPaymentEvent             |                               |
+| AccessibleNode                |                               |
+| AccessibleNodeList            |                               |
+| AnchorElement                 | HTMLAnchorElement             |
+| AnimationEffectReadOnly       |                               |
+| AnimationEffectTiming         |                               |
+| AnimationEffectTimingReadOnly |                               |
+| ApplicationCache              |                               |
+| ApplicationCacheErrorEvent    |                               |
+| AreaElement                   | HTMLAreaElement               |
+| AudioElement                  | HTMLAudioElement              |
+| BackgroundFetchClickEvent     |                               |
+| BackgroundFetchedEvent        |                               |
+| BackgroundFetchFailEvent      |                               |
+| BackgroundFetchFetch          |                               |
+| BackgroundFetchSettledFetch   |                               |
+| BaseElement                   | HTMLBaseElement               |
+| BluetoothRemoteGattDescriptor | BluetoothRemoteGATTDescriptor |
+| BodyElement                   | HTMLBodyElement               |
+| BRElement                     | HTMLBRElement                 |
+| BudgetState                   |                               |
+| ButtonElement                 | HTMLButtonElement             |
+| CanvasElement                 | HTMLCanvasElement             |
+| CDataSection                  | CDATASection                  |
+| ContentElement                |                               |
+| Coordinates                   |                               |
+| Css                           | CSS                           |
+| CssCharsetRule                |                               |
+| CssConditionRule              | CSSConditionRule              |
+| CssFontFaceRule               | CSSFontFaceRule               |
+| CssGroupingRule               | CSSGroupingRule               |
+| CssImageValue                 | CSSImageValue                 |
+| CssImportRule                 | CSSImportRule                 |
+| CssKeyframeRule               | CSSKeyframeRule               |
+| CssKeyframesRule              | CSSKeyframesRule              |
+| CssKeywordValue               | CSSKeywordValue               |
+| CssMatrixComponent            | CSSMatrixComponent            |
+| CssMediaRule                  | CSSMediaRule                  |
+| CssNamespaceRule              | CSSNamespaceRule              |
+| CssNumericValue               | CSSNumericValue               |
+| CssPageRule                   | CSSPageRule                   |
+| CssPerspective                | CSSPerspective                |
+| CssPositionValue              |                               |
+| CssResourceValue              |                               |
+| CssRotation                   |                               |
+| CssRule                       | CSSRule                       |
+| CssScale                      | CSSScale                      |
+| CssSkew                       | CSSSkew                       |
+| CssStyleDeclaration           | CSSStyleDeclaration           |
+| CssStyleRule                  | CSSStyleRule                  |
+| CssStyleSheet                 | CSSStyleSheet                 |
+| CssStyleValue                 | CSSStyleValue                 |
+| CssSupportsRule               | CSSSupportsRule               |
+| CssTransformComponent         | CSSTransformComponent         |
+| CssTransformValue             | CSSTransformValue             |
+| CssTranslation                |                               |
+| CssUnitValue                  | CSSUnitValue                  |
+| CssUnparsedValue              | CSSUnparsedValue              |
+| CssurlImageValue              |                               |
+| CssVariableReferenceValue     | CSSVariableReferenceValue     |
+| CssViewportRule               |                               |
+| DataElement                   | HTMLDataElement               |
+| DataListElement               | HTMLDataListElement           |
+| DeprecatedStorageInfo         |                               |
+| DeprecatedStorageQuota        |                               |
+| DeprecationReport             |                               |
+| DetailsElement                | HTMLDetailsElement            |
+| DeviceAcceleration            |                               |
+| DeviceRotationRate            |                               |
+| DialogElement                 | HTMLDialogElement             |
+| DivElement                    | HTMLDivElement                |
+| DListElement                  | HTMLDListElement              |
+| DomError                      |                               |
+| DomException                  | DOMException                  |
+| DomImplementation             | DOMImplementation             |
+| DomIterator                   |                               |
+| DomMatrix                     | DOMMatrix                     |
+| DomMatrixReadOnly             | DOMMatrixReadOnly             |
+| DomParser                     | DOMParser                     |
+| DomPoint                      | DOMPoint                      |
+| DomPointReadOnly              | DOMPointReadOnly              |
+| DomQuad                       | DOMQuad                       |
+| DomRectList                   | DOMRectList                   |
+| DomRectReadOnly               | DOMRectReadOnly               |
+| DomStringList                 | DOMStringList                 |
+| DomStringMap                  | DOMStringMap                  |
+| DomTokenList                  | DOMTokenList                  |
+| EmbedElement                  | HTMLEmbedElement              |
+| Entry                         | FileSystemEntry               |
+| FieldSetElement               | HTMLFieldSetElement           |
+| FileEntry                     | FileSystemFileEntry           |
+| FileWriter                    |                               |
+| ForeignFetchEvent             |                               |
+| FormElement                   | HTMLFormElement               |
+| Geoposition                   | GeolocationPosition           |
+| HeadElement                   | HTMLHeadElement               |
+| HeadingElement                | HTMLHeadingElement            |
+| HRElement                     | HTMLHRElement                 |
+| HtmlCollection                | HTMLCollection                |
+| HtmlDocument                  | Document                      |
+| HtmlElement                   | HTMLElement                   |
+| HtmlFormControlsCollection    | HTMLFormControlsCollection    |
+| HtmlHtmlElement               | HTMLHtmlElement               |
+| HtmlHyperlinkElementUtils     | HTMLHyperlinkElementUtils     |
+| HtmlOptionsCollection         | HTMLOptionsCollection         |
+| HttpRequest                   | XMLHttpRequest                |
+| HttpRequestEventTarget        | XMLHttpRequestEventTarget     |
+| HttpRequestUpload             | XMLHttpRequestUpload          |
+| IFrameElement                 | HTMLIFrameElement             |
+| ImageElement                  | HTMLImageElement              |
+| InputElement                  | HTMLInputElement              |
+| InstallEvent                  |                               |
+| InterventionReport            |                               |
+| KeyframeEffectReadOnly        |                               |
+| LabelElement                  | HTMLLabelElement              |
+| LegendElement                 | HTMLLegendElement             |
+| LIElement                     | HTMLLIElement                 |
+| LinkElement                   | HTMLLinkElement               |
+| MapElement                    | HTMLMapElement                |
+| MediaElement                  | HTMLMediaElement              |
+| MediaKeysPolicy               |                               |
+| MediaStreamEvent              |                               |
+| MemoryInfo                    |                               |
+| MenuElement                   | HTMLMenuElement               |
+| Metadata                      |                               |
+| MetaElement                   | HTMLMetaElement               |
+| MeterElement                  | HTMLMeterElement              |
+| MidiAccess                    | MIDIAccess                    |
+| MidiConnectionEvent           | MIDIConnectionEvent           |
+| MidiInput                     | MIDIInput                     |
+| MidiInputMap                  | MIDIInputMap                  |
+| MidiMessageEvent              | MIDIMessageEvent              |
+| MidiOutput                    | MIDIOutput                    |
+| MidiOutputMap                 | MIDIOutputMap                 |
+| MidiPort                      | MIDIPort                      |
+| ModElement                    | HTMLModElement                |
+| NavigatorUserMediaError       |                               |
+| NoncedElement                 |                               |
+| ObjectElement                 | HTMLObjectElement             |
+| OListElement                  | HTMLOListElement              |
+| OptGroupElement               | HTMLOptGroupElement           |
+| OptionElement                 | HTMLOptionElement             |
+| OutputElement                 | HTMLOutputElement             |
+| ParagraphElement              | HTMLParagraphElement          |
+| ParamElement                  | HTMLParamElement              |
+| PaymentAddress                |                               |
+| PaymentInstruments            |                               |
+| PictureElement                | HTMLPictureElement            |
+| PositionError                 | GeolocationPositionError      |
+| PreElement                    | HTMLPreElement                |
+| ProgressElement               | HTMLProgressElement           |
+| QuoteElement                  | HTMLQuoteElement              |
+| RtcCertificate                | RTCCertificate                |
+| RtcDataChannel                | RTCDataChannel                |
+| RtcDataChannelEvent           | RTCDataChannelEvent           |
+| RtcDtmfSender                 | RTCDTMFSender                 |
+| RtcDtmfToneChangeEvent        | RTCDTMFToneChangeEvent        |
+| RtcIceCandidate               | RTCIceCandidate               |
+| RtcLegacyStatsReport          |                               |
+| RtcPeerConnection             | RTCPeerConnection             |
+| RtcPeerConnectionIceEvent     | RTCPeerConnectionIceEvent     |
+| RtcRtpContributingSource      | RTCRtpContributingSource      |
+| RtcRtpReceiver                | RTCRtpReceiver                |
+| RtcRtpSender                  | RTCRtpSender                  |
+| RtcSessionDescription         | RTCSessionDescription         |
+| RtcStatsReport                | RTCStatsReport                |
+| RtcStatsResponse              |                               |
+| RtcTrackEvent                 | RTCTrackEvent                 |
+| ScriptElement                 | HTMLScriptElement             |
+| ScrollState                   |                               |
+| SelectElement                 | HTMLSelectElement             |
+| ShadowElement                 |                               |
+| SharedArrayBuffer             |                               |
+| SlotElement                   | HTMLSlotElement               |
+| SourceElement                 | HTMLSourceElement             |
+| SpanElement                   | HTMLSpanElement               |
+| SpeechRecognitionError        | SpeechRecognitionErrorEvent   |
+| StyleElement                  | HTMLStyleElement              |
+| StyleMedia                    |                               |
+| StylePropertyMapReadonly      | StylePropertyMapReadOnly      |
+| TableCaptionElement           | HTMLTableCaptionElement       |
+| TableColElement               | HTMLTableColElement           |
+| TableElement                  | HTMLTableElement              |
+| TableRowElement               | HTMLTableRowElement           |
+| TableSectionElement           | HTMLTableSectionElement       |
+| TemplateElement               | HTMLTemplateElement           |
+| TextAreaElement               | HTMLTextAreaElement           |
+| TextEvent                     |                               |
+| TimeElement                   | HTMLTimeElement               |
+| TitleElement                  | HTMLTitleElement              |
+| TrackDefault                  |                               |
+| TrackDefaultList              |                               |
+| TrackElement                  | HTMLTrackElement              |
+| TrustedHtml                   | TrustedHTML                   |
+| TrustedScriptUrl              | TrustedScriptURL              |
+| TrustedUrl                    |                               |
+| UListElement                  | HTMLUListElement              |
+| UnderlyingSourceBase          | UnderlyingSource              |
+| UnknownElement                | HTMLUnknownElement            |
+| Url                           | URL                           |
+| UrlSearchParams               | URLSearchParams               |
+| VideoElement                  | HTMLVideoElement              |
+| VR                            |                               |
+| VRCoordinateSystem            |                               |
+| VRDevice                      |                               |
+| VRDeviceEvent                 |                               |
+| VRDisplay                     |                               |
+| VRDisplayCapabilities         |                               |
+| VRDisplayEvent                |                               |
+| VREyeParameters               |                               |
+| VRFrameData                   |                               |
+| VRFrameOfReference            |                               |
+| VRPose                        |                               |
+| VRSession                     |                               |
+| VRSessionEvent                |                               |
+| VRStageBounds                 |                               |
+| VRStageBoundsPoint            |                               |
+| VRStageParameters             |                               |
+| VttCue                        | VTTCue                        |
+| VttRegion                     | VTTRegion                     |
+| WorkerPerformance             |                               |
+| XmlDocument                   | XMLDocument                   |
+| XmlSerializer                 | XMLSerializer                 |
+| XsltProcessor                 | XSLTProcessor                 |