From f3e539e1224283dee7d72949fbf011fc4ecff6ec Mon Sep 17 00:00:00 2001 From: "Daniel D. Beck" Date: Wed, 30 Jul 2025 16:13:40 +0200 Subject: [PATCH 1/2] Embellish `discouraged` data with more detail --- features/accessor-methods.yml | 1 + features/arguments-callee.yml | 1 + features/clip.yml | 1 + features/color-adjust.yml | 1 + features/color-contrast.yml | 1 + features/css-object-model-discouraged.yml | 1 + features/date-get-year-set-year.yml | 1 + features/mutation-events.yml | 3 +++ 8 files changed, 10 insertions(+) diff --git a/features/accessor-methods.yml b/features/accessor-methods.yml index 239ae0eff1a..3bf3a587890 100644 --- a/features/accessor-methods.yml +++ b/features/accessor-methods.yml @@ -2,6 +2,7 @@ name: Accessor methods description: The `__defineGetter__()` and `__defineSetter__()` methods of objects bind a function to a property, which is called on setting or reading the property. spec: https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.prototype-legacy-accessor-methods discouraged: + reason: TC39 included accessor methods in Annex B of the ECMAScript specification, which covers JavaScript features with "one or more undesirable characteristics and in the absence of legacy usage would be removed." according_to: - https://tc39.es/ecma262/multipage/additional-ecmascript-features-for-web-browsers.html#sec-additional-ecmascript-features-for-web-browsers # No `alternatives` because it would be `alternatives: diff --git a/features/arguments-callee.yml b/features/arguments-callee.yml index 835e4e4d3bb..a5e2b6b8cdc 100644 --- a/features/arguments-callee.yml +++ b/features/arguments-callee.yml @@ -6,6 +6,7 @@ discouraged: # From note 4: "The definition of this property […] exists to ensure that it # is not defined in any other manner by conforming ECMAScript # implementations." + reason: JavaScript strict mode prohibits accessing `arguments.callee`. according_to: - https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-arguments-exotic-objects compat_features: diff --git a/features/clip.yml b/features/clip.yml index ee50c375776..73a072f4583 100644 --- a/features/clip.yml +++ b/features/clip.yml @@ -3,6 +3,7 @@ description: The `clip` CSS property sets the visible area of an absolutely posi spec: https://drafts.fxtf.org/css-masking-1/#clip-property group: clipping-shapes-masking discouraged: + reason: The CSS Masking specification deprecated the `clip` property. according_to: - https://drafts.fxtf.org/css-masking-1/#clip-property alternatives: diff --git a/features/color-adjust.yml b/features/color-adjust.yml index fe473e5dccd..039ac8e4ef0 100644 --- a/features/color-adjust.yml +++ b/features/color-adjust.yml @@ -3,6 +3,7 @@ description: The `color-adjust` shorthand CSS property allows multiple performan spec: https://drafts.csswg.org/css-color-adjust-1/#color-adjust group: print discouraged: + reason: The CSS Color Adjustment specification described the `color-adjust` as deprecated, to prevent authors from accidentally resetting color adjustments in unexpected contexts. according_to: - https://drafts.csswg.org/css-color-adjust-1/#color-adjust alternatives: diff --git a/features/color-contrast.yml b/features/color-contrast.yml index f6a04a80c7d..482c87b5a0c 100644 --- a/features/color-contrast.yml +++ b/features/color-contrast.yml @@ -3,6 +3,7 @@ description: "The `color-contrast()` CSS function picks a color from a list that spec: https://drafts.csswg.org/css-color-5/#contrast-color group: color-types discouraged: + reason: The CSS Color specification renamed `color-contrast()` to `contrast-color()`. # See these CSSWG discussions # https://github.com/w3c/csswg-drafts/issues/7557 # https://github.com/w3c/csswg-drafts/issues/7359 diff --git a/features/css-object-model-discouraged.yml b/features/css-object-model-discouraged.yml index e250df6303b..26e254b3877 100644 --- a/features/css-object-model-discouraged.yml +++ b/features/css-object-model-discouraged.yml @@ -3,6 +3,7 @@ description: The DOM level 2 style specification defined interfaces to access an spec: https://www.w3.org/TR/DOM-Level-2-Style/ group: cssom discouraged: + reason: The DOM level 2 CSS object model was excluded from the later CSS object model (CSSOM) specification. according_to: - https://www.w3.org/TR/DOM-Level-2-Style/#Overview-status alternatives: diff --git a/features/date-get-year-set-year.yml b/features/date-get-year-set-year.yml index bfed0819dd1..11a94c9138b 100644 --- a/features/date-get-year-set-year.yml +++ b/features/date-get-year-set-year.yml @@ -3,6 +3,7 @@ description: The `getYear()` and `setYear()` methods of `Date` objects get and s spec: https://tc39.es/ecma262/multipage/additional-ecmascript-features-for-web-browsers.html#sec-date.prototype.getyear group: javascript discouraged: + reason: The `getYear()` and `setYear()` methods use a truncated number instead of the actual year number, known as a year 2000 problem. according_to: - https://tc39.es/ecma262/multipage/additional-ecmascript-features-for-web-browsers.html#sec-additional-ecmascript-features-for-web-browsers # No `alternatives` because it would be `alternatives: [date]`. In the future diff --git a/features/mutation-events.yml b/features/mutation-events.yml index f8457161128..6ac9dbe3aa3 100644 --- a/features/mutation-events.yml +++ b/features/mutation-events.yml @@ -4,8 +4,11 @@ description: Mutation events like `DOMSubtreeModified`, `DOMNodeInserted`, or `D spec: https://w3c.github.io/uievents/ group: dom discouraged: + pending_removal: true + reason: Mutation events negatively impact performance and they were selected for removal from the web as part of Interop 2025. according_to: - https://www.w3.org/TR/2024/WD-uievents-20240906/#legacy-mutationevent-events + - https://github.com/web-platform-tests/interop/issues/784 alternatives: - mutationobserver compat_features: From c312a788cdb2b048a4b8adc12f02759020f048a0 Mon Sep 17 00:00:00 2001 From: "Daniel D. Beck" Date: Thu, 14 Aug 2025 14:30:09 +0200 Subject: [PATCH 2/2] Add discouragement reason to SVG 1.1 --- features/svg-discouraged.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/features/svg-discouraged.yml b/features/svg-discouraged.yml index 34dd968bd42..9e6f817deb9 100644 --- a/features/svg-discouraged.yml +++ b/features/svg-discouraged.yml @@ -1,9 +1,10 @@ -name: SVG 1.1 (discouraged) +name: SVG 1.1 description: The SVG 1.1 image format has several components that were excluded from SVG 2, such as fonts, alternate glyphs, and the `xlink` namespace. spec: https://www.w3.org/TR/SVG11/ discouraged: according_to: - https://svgwg.org/svg2-draft/changes.html#substantial + reason: SVG 2 omittted some parts of SVG 1.1 to "improv[e] the usability and precision of the language." alternatives: - svg - font-face