Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Merkmale, die durch Benutzeraktivierung gesteuert werden

Um sicherzustellen, dass Anwendungen nicht in der Lage sind, APIs zu missbrauchen, die eine schlechte Benutzererfahrung schaffen können, wenn das Verhalten nicht erwünscht ist, können einige APIs nur verwendet werden, wenn der Benutzer in einem Zustand der "aktiven Interaktion" ist. Dies bedeutet, dass der Benutzer derzeit mit der Webseite interagiert oder mindestens einmal mit der Seite interagiert hat. Browser beschränken den Zugriff auf sensible APIs wie Popups, Vollbild- oder Vibrations-APIs auf aktive Benutzerinteraktionen, um zu verhindern, dass bösartige Skripte diese Funktionen missbrauchen. Diese Seite listet Webplattform-Funktionen auf, die nur nach Benutzeraktivierung verfügbar sind.

Eine Benutzeraktivierung bedeutet entweder, dass der Benutzer derzeit mit der Seite interagiert oder seit dem Laden der Seite eine Interaktion abgeschlossen hat. Typischerweise handelt es sich dabei um einen Klick auf einen Button oder eine andere Interaktion mit der Benutzeroberfläche.

Genauer gesagt ist ein Aktivierung-auslösendes Eingabeereignis ein Ereignis, das:

  • das isTrusted Attribut auf true gesetzt hat, und
  • eines der folgenden Typen ist:

Wurde eine Aktivierung ausgelöst, unterscheidet der Benutzeragent zwischen zwei Arten von Fensterzuständen der Benutzeraktivierung: sticky und transient.

Vergleich zwischen transienter und sticky Aktivierung

Der Unterschied zwischen transienter und sticky Aktivierung besteht darin, dass transiente Aktivierung nur für kurze Zeit anhält und in einigen Fällen verbraucht (deaktiviert) werden kann, wenn eine geschützte Funktion genutzt wird, während sticky Aktivierung bis zum Ende der Sitzung bestehen bleibt.

Das Sperren von Funktionen bei transienten Aktivierungen stellt sicher, dass sie nur verfügbar sind, wenn sie direkt von einem Benutzer ausgelöst werden. Sticky Aktivierung hingegen wird hauptsächlich verwendet, um Funktionen zu beschränken, die nicht automatisch beim Laden der Seite ausgelöst werden sollten, wie z.B. Popups.

Transiente Aktivierung

Transiente Aktivierung ist ein Fensterzustand, der darauf hinweist, dass ein Benutzer kürzlich einen Button gedrückt oder eine andere Benutzerinteraktion durchgeführt hat. Transiente Aktivierung läuft nach einem Timeout ab (wenn sie nicht durch weitere Interaktion erneuert wird) und kann auch durch einige APIs verbraucht werden (wie Window.open()).

APIs, die transiente Aktivierung erfordern (Liste ist nicht vollständig):

Sticky Aktivierung

Sticky Aktivierung ist ein Fensterzustand, der darauf hinweist, dass ein Benutzer irgendwann in der Sitzung einen Button gedrückt, ein Menü verwendet oder eine andere Benutzerinteraktion durchgeführt hat. Sie wird nach der erstmaligen Einstellung nicht zurückgesetzt (im Gegensatz zur transienten Aktivierung).

APIs, die sticky Aktivierung erfordern (nicht vollständig):

UserActivation API

Um programmatisch zu bestimmen, ob ein Fenster entweder sticky oder transiente Benutzeraktivierung hat, bietet die UserActivation API zwei Eigenschaften, die über navigator.userActivation verfügbar sind:

Siehe auch