- Filters:
- All
- Newly available
- Widely available
- Limited availability
- One missing engine
- Discouraged
- Latest browser releases:
- Chrome 134
- Chrome Android 134
- Edge 134
- Firefox 136
- Firefox for Android 136
- Safari 18.3
- Safari on iOS 18.3
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
callee
property of thearguments
variable in a non-strict function body's local scope is the function thatarguments
belongs 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
clip
CSS property sets the visible area of an absolutely positioned element.- Chrome ≤80 Released before 2020-02-04
- Chrome Android ≤80 Released before 2020-02-04
- Edge ≤80 Released before 2020-02-07
- Firefox ≤72 Released before 2020-01-07
- Firefox for Android ≤79 Released before 2020-07-28
- Safari ≤13.1 Released before 2020-03-24
- Safari on iOS ≤13.4 Released before 2020-03-24
-
color-adjust
DiscouragedThe
color-adjust
shorthand CSS property allows multiple performance related color adjustments to be set at once. Setting theprint-color-adjust
CSS property directly is preferred, as it is the only such adjustment so far defined.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ≤72 Released before 2020-01-07
- Firefox for Android ≤79 Released before 2020-07-28
- 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
CSSValue
andCSSPrimitiveValue
, 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 ofDate
objects 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 ofDate
objects 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-width
media 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
, andvlinkColor
properties 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 ❌
- Chrome Android ❌
- Edge ❌
- Firefox 69 Released on 2019-09-03
- Firefox for Android 79 Released on 2020-07-28
- Safari ❌
- Safari on iOS ❌
-
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 (117 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-stretch
CSS property selects a font face from a font family based on width, either by a keyword such ascondensed
or 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
caller
andarguments
properties of a non-strict modeFunction
object are the function that called it and the arguments it was called with. Not to be confused with thearguments
variable 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-vertical
CSS property sets the orientation of glyphs in text rendered in a vertical writing mode.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari ≤13.1 Released before 2020-03-24
- Safari on iOS ≤13.4 Released before 2020-03-24
-
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-mode
CSS 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 ❌
-
MediaController
DiscouragedThe playback of multiple
<video>
or<audio>
elements can be coordinated by aMediaController
instance, 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
, orDOMNodeRemoved
fire when DOM changes occur.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- 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
-
overflow: overlay
DiscouragedThe
overflow: overlay
CSS 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-after
CSS properties are aliases to thebreak-before
,break-inside
, andbreak-after
properties.- 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.timing
andwindow.performance.navigation
APIs 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 ❌
-
__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 ofRegExp
objects 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
RegExp
object 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.grammars
property 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
xlink
namespace.- Chrome ❌
- Chrome Android ❌
- Edge ❌
- Firefox ❌
- Firefox for Android ❌
- Safari ❌
- Safari on iOS ❌
-
text-decoration-line: blink
DiscouragedThe
text-decoration: blink
CSS 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
with
JavaScript 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-word
CSS 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-rl
keyword values for thewriting-mode
CSS 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