Discouraged features
Using the following features is discouraged, even if they're still implemented in browsers, because standards bodies and/or browser implementers have agreed that they should not be used.
-
The
__defineGetter__()and__defineSetter__()methods of objects bind a function to a property, which is called on setting or reading the property.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 1 Released on 2004-11-09
- Firefox for Android 4 Released on 2011-03-29
- Safari 3 Released on 2007-10-26
- Safari on iOS 1 Released on 2007-06-29
-
The Ad Selection API facilitates advertisement sales by allowing sites to register users as part of an interest group or to choose which ads appear based on those interest groups, while minimizing the ability of advertisers to track specific members of the interest group.
- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The
calleeproperty of theargumentsvariable in a non-strict function body's local scope is the function thatargumentsbelongs to.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 1 Released on 2004-11-09
- Firefox for Android 4 Released on 2011-03-29
- Safari 1 Released on 2003-06-23
- Safari on iOS 1 Released on 2007-06-29
-
The attribution reporting API measures when an ad click or view leads to a conversion, such as a purchase on an advertiser site.
-
The
setPosition()andsetOrientation()methods of theAudioListenerAPI set the virtual position and orientation of a person relative to sound sources, to spatialize audio in a Web Audio context.- Chrome 14 Released on 2011-09-16
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 25 Released on 2013-10-29
- Firefox for Android 25 Released on 2013-10-29
- Safari 6 Released on 2012-07-25
- Safari on iOS 6 Released on 2012-09-10
-
The
clipCSS property sets the visible area of an absolutely positioned element.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 79 Released on 2020-01-15
- Firefox 1 Released on 2004-11-09
- Firefox for Android 4 Released on 2011-03-29
- Safari 1.3 Released on 2005-04-15
- Safari on iOS 1 Released on 2007-06-29
-
The
color-adjustshorthand CSS property allows multiple performance related color adjustments to be set at once. Setting theprint-color-adjustCSS property directly is preferred, as it is the only such adjustment so far defined.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox 48 Released on 2016-08-02
- Firefox for Android 48 Released on 2016-08-02
- Safari 15.4 Released on 2022-03-14
- Safari on iOS 15.4 Released on 2022-03-14
Baseline availability blocked since March 2022 by Chromium (52 months)
-
The
color-contrast()CSS function picks a color from a list that has the most contrast with another color.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The DOM level 2 style specification defined interfaces to access and modify CSS styles, such as
CSSValueandCSSPrimitiveValue, that were later excluded from the CSS object model.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari 10 Released on 2016-09-20
- Safari on iOS 10 Released on 2016-09-13
-
The
getYear()andsetYear()methods ofDateobjects get and set the year as an offset to 1900.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 1 Released on 2004-11-09
- Firefox for Android 4 Released on 2011-03-29
- Safari 1 Released on 2003-06-23
- Safari on iOS 1 Released on 2007-06-29
-
The
toGMTString()method ofDateobjects is an alias to thetoUTCString()method.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 1 Released on 2004-11-09
- Firefox for Android 4 Released on 2011-03-29
- Safari 1 Released on 2003-06-23
- Safari on iOS 1 Released on 2007-06-29
-
The
device-aspect-ratio,device-height, anddevice-widthmedia features describe physical properties of the displaying output device.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 2 Released on 2006-10-24
- Firefox for Android 4 Released on 2011-03-29
- Safari 3 Released on 2007-10-26
- Safari on iOS 1 Released on 2007-06-29
-
A document's
bgColor,fgColor,alinkColor,linkColor, andvlinkColorproperties get and set the background, foreground, active link, link, and visited link colors of that document.- Chrome 64 Released on 2018-01-23
- Chrome Android 64 Released on 2018-01-23
- Edge 12 Released on 2015-07-29
- Firefox 69 Released on 2019-09-03
- Firefox for Android 79 Released on 2020-07-28
- Safari 11 Released on 2017-09-19
- Safari on iOS 11 Released on 2017-09-19
-
The
document.open(),document.write(),document.writeln(), anddocument.close()methods write content to a document, possibly while that document is still loading.- Chrome 45 Released on 2015-09-01
- Chrome Android 45 Released on 2015-09-01
- Edge 12 Released on 2015-07-29
- Firefox 69 Released on 2019-09-03
- Firefox for Android 79 Released on 2020-07-28
- Safari 11 Released on 2017-09-19
- Safari on iOS 11 Released on 2017-09-19
-
The
escape()andunescape()built-in Javascript methods encode and unencode strings using percent encoding, where certain characters are replaced by hexadecimal escape sequences.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 1 Released on 2004-11-09
- Firefox for Android 4 Released on 2011-03-29
- Safari 1 Released on 2003-06-23
- Safari on iOS 1 Released on 2007-06-29
-
The
execCommand()method reads and writes from the clipboard and performs editing commands on editable text, such as changing the font name or style. Related methods check whether commands are supported, enabled, or applied.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 69 Released on 2019-09-03
- Firefox for Android 79 Released on 2020-07-28
- Safari 1.3 Released on 2005-04-15
- Safari on iOS 1 Released on 2007-06-29
-
The
window.external.AddSearchProvider()andwindow.external.IsSearchProviderInstalled()do nothing. Historically, they added external search providers to the browser.- Chrome 9 Released on 2011-02-03
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 2 Released on 2006-10-24
- Firefox for Android 4 Released on 2011-03-29
- Safari Not supported
- Safari on iOS Not supported
Baseline availability blocked since July 2015 by Safari (132 months)
-
The
Feature-Policyresponse header sets whether a policy-controlled feature, such as an API, may be used in a document. Not to be confused with permissions policy.- Chrome 74 Released on 2019-04-23
- Chrome Android 74 Released on 2019-04-24
- Edge 79 Released on 2020-01-15
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The
callerandargumentsproperties of a non-strict modeFunctionobject are the function that called it and the arguments it was called with. Not to be confused with theargumentsvariable in a function body's local scope.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 1 Released on 2004-11-09
- Firefox for Android 4 Released on 2011-03-29
- Safari 3 Released on 2007-10-26
- Safari on iOS 1 Released on 2007-06-29
-
The
glyph-orientation-verticalCSS property sets the orientation of glyphs in text rendered in a vertical writing mode.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari 4 Released on 2009-06-08
- Safari on iOS 3.2 Released on 2010-04-03
-
The
:host-context()CSS pseudo-class selects the containing element of the shadow tree in which it is used if that element or an ancestor matches the provided selector.- Chrome 54 Released on 2016-10-12
- Chrome Android 54 Released on 2016-10-19
- Edge 79 Released on 2020-01-15
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
JavaScript built-in methods such as,
String.bold()andString.italics(), wrap strings in (often historic) HTML.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 1 Released on 2004-11-09
- Firefox for Android 4 Released on 2011-03-29
- Safari 1 Released on 2003-06-23
- Safari on iOS 1 Released on 2007-06-29
-
The
ime-modeCSS property sets the state of the input method editor for text fields.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox 3 Released on 2008-06-17
- Firefox for Android 4 Released on 2011-03-29
- Safari Not supported
- Safari on iOS Not supported
-
Module
import … assert { type: "json" }andimport … assert { type: "css" }JavaScript statements load JSON and CSS data.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The
navigator.scheduling.isInputPending()method checks if there are pending input events, such as touch or mouse events. This allows you to yield from long-running scripts that might be blocking user interaction.- Chrome 87 Released on 2020-11-17
- Chrome Android 87 Released on 2020-11-17
- Edge 87 Released on 2020-11-19
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
MathML specifies several elements and attributes that are not included in MathML Core. Math applications outside of browsers may implement these features, but they are discouraged for web use.
- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The playback of multiple
<video>or<audio>elements can be coordinated by aMediaControllerinstance, for example to synchronize a sign-language interpreter track with the main video track.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari 7 Released on 2013-10-22
- Safari on iOS 7 Released on 2013-09-18
-
Mutation events like
DOMSubtreeModified,DOMNodeInserted, orDOMNodeRemovedfire when DOM changes occur.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The
overflow: overlayCSS declaration is an alias tooverflow: auto. Historically, it caused non-standard behavior, allowing scrollbars to overlay content without taking up layout space.- Chrome 114 Released on 2023-05-30
- Chrome Android 114 Released on 2023-05-30
- Edge 114 Released on 2023-06-02
- Firefox 112 Released on 2023-04-11
- Firefox for Android 112 Released on 2023-04-11
- Safari 12 Released on 2018-09-17
- Safari on iOS 12 Released on 2018-09-17
-
The
page-break-before,page-break-inside, andpage-break-afterCSS properties are aliases to thebreak-before,break-inside, andbreak-afterproperties.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The
window.performance.timingandwindow.performance.navigationAPIs report performance timing information for events that occur during the loading and use of the current page.- Chrome 56 Released on 2017-01-25
- Chrome Android 56 Released on 2017-02-01
- Edge 18 Released on 2018-10-02
- Firefox 56 Released on 2017-09-28
- Firefox for Android 56 Released on 2017-09-28
- Safari 14.1 Released on 2021-04-26
- Safari on iOS 14.5 Released on 2021-04-26
-
The
<portal>HTML element embeds another page into the current page as a non-interactive preview. -
The
Access-Control-Request-Private-Network: trueandAccess-Control-Allow-Private-Network: trueHTTP request and response headers establish permission for websites to make requests to internal networks, such as to routers. -
The protected audience API facilitates advertisement sales by allowing sites to register users as part of an interest group or to choose which ads appear based on those interest groups, while minimizing the ability of advertisers to track specific members of the interest group. Also known as FLEDGE.
- Chrome 134 Released on 2025-03-04
- Chrome Android 134 Released on 2025-03-04
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The
__proto__property of objects partially exposes the prototype of an object.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 1 Released on 2004-11-09
- Firefox for Android 4 Released on 2011-03-29
- Safari 3 Released on 2007-10-26
- Safari on iOS 1 Released on 2007-06-29
-
The
compile()method ofRegExpobjects recompiles an existing regular expression object using a new pattern and flags.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 1 Released on 2004-11-09
- Firefox for Android 4 Released on 2011-03-29
- Safari 3.1 Released on 2008-03-18
- Safari on iOS 2 Released on 2008-07-11
-
The
RegExpobject has several static properties to access the input and results of the most-recent regular expression match.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 1 Released on 2004-11-09
- Firefox for Android 4 Released on 2011-03-29
- Safari 3 Released on 2007-10-26
- Safari on iOS 1 Released on 2007-06-29
-
Intervention reporting sends a report to a URL nominated by the
Reporting-Endpointsheader when the browser has not honored an application's request, contrary to specified behavior, such as for security or privacy reasons.- Chrome 69 Released on 2018-09-04
- Chrome Android 69 Released on 2018-09-04
- Edge 79 Released on 2020-01-15
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The
SpeechRecognition.grammarsproperty of the Web Speech API represents a set of words or patterns of words that the recognition service should recognize, used for when the recognition service's accuracy is low.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The SVG 1.1 image format has several components that were excluded from SVG 2, such as fonts, alternate glyphs, and the
xlinknamespace.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari ≤13.1 Released before 2020-03-24
- Safari on iOS ≤13.4 Released before 2020-03-24
-
Attributes and properties of table elements, such as
align,vAlign,noWrap,bgcolor, orcharset various visual presentation properties of the table and its sections and cells.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The
:target-withinCSS pseudo-class matches the element with an ID matching the URL fragment and its ancestors.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The
text-decoration: blinkCSS declaration flashes text between visible and invisible.- Chrome 57 Released on 2017-03-09
- Chrome Android 57 Released on 2017-03-16
- Edge 79 Released on 2020-01-15
- Firefox 36 Released on 2015-02-24
- Firefox for Android 36 Released on 2015-02-27
- Safari 12.1 Released on 2019-03-25
- Safari on iOS 12.2 Released on 2019-03-25
-
The topics API reports a user's likely subject-matter interests (as determined by the browser, known as topics) to iframes. This allows for interest-based advertising that does not rely on user's exact browsing history, third-party cookies, or fingerprinting.
- Chrome 126 Released on 2024-06-11
- Chrome Android 126 Released on 2024-06-11
- Edge 126 Released on 2024-06-13
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The
navigator.getVRDisplays()API represents virtual reality (VR) devices, including sensors and head-mounted displays.- Chrome Not supported
- Chrome Android Not supported
- Edge Not supported
- Firefox Not supported
- Firefox for Android Not supported
- Safari Not supported
- Safari on iOS Not supported
-
The
withJavaScript statement adds a given object to the chain of scopes used to evaluate names.- Chrome 38 Released on 2014-10-07
- Chrome Android 38 Released on 2014-10-08
- Edge 12 Released on 2015-07-29
- Firefox 48 Released on 2016-08-02
- Firefox for Android 48 Released on 2016-08-02
- Safari 10 Released on 2016-09-20
- Safari on iOS 10 Released on 2016-09-13
-
The
word-break: break-wordCSS declaration sets word breaks to occur according to their customary rules.- Chrome 1 Released on 2008-12-11
- Chrome Android 18 Released on 2012-06-27
- Edge 12 Released on 2015-07-29
- Firefox 67 Released on 2019-05-21
- Firefox for Android 67 Released on 2019-05-21
- Safari 3 Released on 2007-10-26
- Safari on iOS 2 Released on 2008-07-11
-
The
lr,lr-tb,rl,rl-tb,tb, andtb-rlkeyword values for thewriting-modeCSS property set the text direction for elements in SVG 1.1 documents.- Chrome 48 Released on 2016-01-20
- Chrome Android 48 Released on 2016-01-26
- Edge 12 Released on 2015-07-29
- Firefox 43 Released on 2015-12-15
- Firefox for Android 43 Released on 2015-12-15
- Safari 10.1 Released on 2017-03-27
- Safari on iOS 10.3 Released on 2017-03-27