I was looking at the document.hidden
specs here to understand what exactly hidden entails:
- If steps to determine the visibility state return
visible
, then returnfalse
. 2. Otherwise, returntrue
.
Note
Support for
hidden
attribute is maintained for historical reasons. Developers should usevisibilityState
where possible.
visibilityState
is another property that can return one of three strings: 'visible'
, 'hidden'
, or 'prerender'
.
document.hidden
(as indicated by the above rules) returns true
for 'visible'
and false
for all other strings.
I am curious about the note. Why do they say that developers should prefer visibilityState
to hidden
?
Is it simply because visibilityState
gives you more "power" (re: granularity) in that it's more specific about what state the document is in, whereas hidden
dumbs it down by turning the four states into two states, "hidden" or "not hidden"?
I understand that this may only be answerable by the people who wrote the specs, but maybe they're crawling around here.
A preemptive note: I'm going to guess that this may be closed as "opinion-based", because it'll attract opinionated answers, and while it certainly may attract answers like that, this can be answered objectively by those who wrote the specs, so I'll take my chances.
visibilityState
possible values, I would like to note that the'unloaded'
value has become deprecated and thus only three possible values for this property remain. – Masterly