enum AutoplayPolicy { "allowed", "allowed-muted", "disallowed" };
The spec claims the API "does not allow an origin to detect if users are in private browsing mode." But the questionnaire hedges: "Unless the user agent implements something specially." No normative requirement prevents divergent results across modes.
"A user agent MUST NOT return different AutoplayPolicy values for the same origin based solely on whether the context is in private browsing mode."
The spec's Introduction teaches the pattern: detect "allowed-muted", play muted, then unmute programmatically. The only defense is in a non-normative Note — zero conformance weight.
"If a media element begins playback as inaudible under allowed-muted and becomes audible without transient user activation, the user agent SHOULD pause it."