- Filters:
- Newly available
- Widely available
- Limited availability
- One missing engine
- Discouraged
- All features
- Browser releases:
- Chrome
- Chrome Android
- Edge 141
- Firefox 144
- Firefox for Android 144
- Safari 26
- Safari on iOS 26
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.
-
Accessor methods
DiscouragedThe
__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
-
arguments.callee
DiscouragedThe
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
-
clip
DiscouragedThe
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
-
color-adjust
DiscouragedThe
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 ❌
- Chrome Android ❌
- Edge ❌
- 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
-
color-contrast()
DiscouragedThe
color-contrast()CSS function picks a color from a list that has the most contrast with another color.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari ❌
- Safari on iOS ❌
-
CSS object model (DOM level 2)
DiscouragedThe 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 ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari 10 Released on 2016-09-20
- Safari on iOS 10 Released on 2016-09-13
-
getYear() and setYear()
DiscouragedThe
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
-
toGMTString()
DiscouragedThe
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
-
Device media queries
DiscouragedThe
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
-
Document colors
DiscouragedA 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
-
document.write()
DiscouragedThe
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
-
escape() and unescape()
DiscouragedThe
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
-
execCommand()
DiscouragedThe
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
-
window.external
DiscouragedThe
window.external.AddSearchProvider()andwindow.external.IsSearchProviderInstalled()do nothing. Historically, they added external search providers to the browser.Baseline availability blocked since July 2015 by Safari (123 months)
- 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 ❌
- Safari on iOS ❌
-
font-stretch
DiscouragedThe
font-stretchCSS property selects a font face from a font family based on width, either by a keyword such ascondensedor a percentage.- Chrome 60 Released on 2017-07-25
- Chrome Android 60 Released on 2017-08-01
- Edge 12 Released on 2015-07-29
- Firefox 9 Released on 2011-12-20
- Firefox for Android 9 Released on 2011-12-21
- Safari 11 Released on 2017-09-19
- Safari on iOS 11 Released on 2017-09-19
-
Function caller and arguments
DiscouragedThe
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
-
glyph-orientation-vertical
DiscouragedThe
glyph-orientation-verticalCSS property sets the orientation of glyphs in text rendered in a vertical writing mode.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari 4 Released on 2009-06-08
- Safari on iOS 3.2 Released on 2010-04-03
-
:host-context()
DiscouragedThe
: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 ❌
- Firefox for Android ❌
- Safari ❌
- Safari on iOS ❌
-
HTML wrapper methods
DiscouragedJavaScript 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
-
ime-mode
DiscouragedThe
ime-modeCSS property sets the state of the input method editor for text fields.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox 3 Released on 2008-06-17
- Firefox for Android 4 Released on 2011-03-29
- Safari ❌
- Safari on iOS ❌
-
Import assertions
DiscouragedModule
import … assert { type: "json" }andimport … assert { type: "css" }JavaScript statements load JSON and CSS data.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari ❌
- Safari on iOS ❌
-
isInputPending()
DiscouragedThe
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 ❌
- Firefox for Android ❌
- Safari ❌
- Safari on iOS ❌
-
MediaController
DiscouragedThe 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 ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari 7 Released on 2013-10-22
- Safari on iOS 7 Released on 2013-09-18
-
Mutation events
DiscouragedMutation events like
DOMSubtreeModified,DOMNodeInserted, orDOMNodeRemovedfire when DOM changes occur.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari ❌
- Safari on iOS ❌
-
overflow: overlay
DiscouragedThe
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
-
Page break aliases
DiscouragedThe
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 ❌
- Firefox for Android ❌
- Safari ❌
- Safari on iOS ❌
-
PerformanceTiming and PerformanceNavigation
DiscouragedThe
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
-
Portals
DiscouragedThe
<portal>HTML element embeds another page into the current page as a non-interactive preview.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌ Vendor position : defer
- Firefox for Android ❌ Vendor position : defer
- Safari ❌
- Safari on iOS ❌
-
Private network access
DiscouragedThe
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.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌ Vendor position : positive
- Firefox for Android ❌ Vendor position : positive
- Safari ❌
- Safari on iOS ❌
-
__proto__
DiscouragedThe
__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
-
RegExp compile()
DiscouragedThe
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
-
RegExp static properties
DiscouragedThe
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
-
Speech recognition grammar
DiscouragedThe
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. This feature has been removed due to advancements in speech recognition.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari ❌
- Safari on iOS ❌
-
SVG 1.1 (discouraged)
DiscouragedThe SVG 1.1 image format has several components that were excluded from SVG 2, such as fonts, alternate glyphs, and the
xlinknamespace.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari ❌
- Safari on iOS ❌
-
Table styling
DiscouragedAttributes and properties of table elements, such as
align,vAlign,noWrap,bgcolor, orcharset various visual presentation properties of the table and its sections and cells. These are obsolete, and some of them have no effect. Use CSS instead.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari ❌
- Safari on iOS ❌
-
:target-within
DiscouragedThe
:target-withinCSS pseudo-class matches the element with an ID matching the URL fragment and its ancestors.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari ❌
- Safari on iOS ❌
-
text-decoration-line: blink
DiscouragedThe
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
-
WebVR
DiscouragedThe
navigator.getVRDisplays()API represents virtual reality (VR) devices, including sensors and head-mounted displays.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari ❌
- Safari on iOS ❌
-
with
DiscouragedThe
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
-
word-break: break-word
DiscouragedThe
word-break: break-wordCSS declaration sets word breaks to occur according to their customary rules. Superseded byoverflow-wrap: anywhere.- 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
-
writing-mode SVG 1.1 values
DiscouragedThe
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