Fokus-Monitor · startet

Tab-Fokus-Detektor — was eine Seite aufzeichnet, wenn Sie weggehen

Prüfe…

Es wird ausgelesen, was dieses Dokument über seine eigene Sichtbarkeit und seinen Fokus meldet.

Wechseln Sie den Tab, klicken Sie in ein anderes Fenster oder minimieren Sie dieses — und kommen Sie zurück.

Diese Seite führt in Ihrem eigenen Browser dieselbe Fokus- und Sichtbarkeitsprüfung aus, die ein Online-Assessment oder eine Proctoring-Seite ausführt. Wechseln Sie den Tab, klicken Sie in ein anderes Fenster oder minimieren Sie dieses — und sehen Sie genau, was aufgezeichnet wird. Nichts wird hochgeladen; jeder Messwert bleibt in diesem Tab.

Ereignisprotokoll

Wechseln Sie den Tab, klicken Sie in ein anderes Fenster oder minimieren Sie dieses — und kommen Sie zurück.

Signale

#ZeitEreignisErfasster ZustandAbwesend
Noch nichts. Wechseln Sie in einen anderen Tab oder klicken Sie in ein anderes Fenster und kommen Sie zurück.

Was dieser Test ausliest

Jeder Browser gibt zwei voneinander unabhängige Werte preis. document.visibilityState sagt, ob dieser Tab der angezeigte ist, und document.hasFocus() sagt, ob dieses Dokument die Tastatureingaben erhält. Beides braucht keine Berechtigung, und beides lässt sich nicht abschalten.

Es sind nicht dieselben Werte. Ein Wechsel in einen anderen Tab macht die Seite verborgen. Ein Klick in ein zweites Browserfenster, einen Messenger oder ein Terminal lässt diesen Tab sichtbar, nimmt ihm aber den Fokus — die Seite ist dann ohne Fokus, nicht verborgen.

Assessment-Plattformen protokollieren in der Regel beides, zählen es getrennt und messen, wie lange jede Abwesenheit dauerte. Die Tabelle unten zeigt genau die Aufzeichnung, die dabei entsteht.

Was es auslöst

  • Wechsel in einen anderen Tab — löst visibilitychange aus, der Zustand wird hidden. Wird überall erfasst, auch auf dem Handy.
  • Fenster minimieren, Bildschirm sperren oder das Handy in den Ruhezustand schicken — gilt ebenfalls als verborgen.
  • Klick in ein anderes Fenster oder Programm — ein zweites Browserfenster, ein Editor, ein Messenger, eine Suchleiste oder ein Launcher. Der Tab bleibt sichtbar; stattdessen löst das blur-Ereignis des Fensters aus.
  • Entwicklertools in einem eigenen Fenster öffnen — zählt als Fensterwechsel und löst daher blur aus.
  • Einfrieren oder Verwerfen des Tabs durch den Browser, um Speicher zu sparen — löst in Chromium freeze und pagehide aus.
  • Seite schließen oder neu laden — löst pagehide aus, das Ereignis, mit dem Plattformen einen unvollendeten Versuch abschließen.

Vor einem Online-Assessment

Wenn ein Test warnt, dass das Verlassen der Seite aufgezeichnet wird, lohnt es sich, vorher zu wissen, was das tatsächlich bedeutet.

  1. Öffnen Sie diese Seite in dem Browser, den Sie im Assessment wirklich verwenden werden, und lassen Sie sie offen.
  2. Wechseln Sie in einen anderen Tab und kommen Sie sofort zurück. Beachten Sie: Das Protokoll hält ein hidden-Ereignis und die genaue Sekundenzahl fest.
  3. Klicken Sie nun stattdessen in ein anderes Fenster — einen Messenger oder einen Editor. Das Protokoll zeigt ein blur-Ereignis, und der Tab war nie verborgen.
  4. Schalten Sie die Sperrmeldung ein, um zu sehen, was eine Assessment-Seite in dem Moment anzeigt, in dem Sie weggehen. Viele Plattformen zeigen genau das.
  5. Achten Sie auf die unbeabsichtigten Fälle: ein Benachrichtigungsbanner, ein Passwortmanager-Fenster oder ein Tastenkürzel-Launcher werden ebenso erfasst.

Zu wissen, was aufgezeichnet wird, ist etwas anderes, als es zu umgehen. Diese Seite sagt Ihnen, wie der Messwert lautet; wie eine Plattform ihn deutet, bleibt deren Sache.

Wie das Ergebnis zustande kommt

Fokussiert — visibilityState ist visible und hasFocus() ist true. Dieser Tab ist auf dem Bildschirm und erhält Ihre Tastenanschläge.

Ohne Fokus — weiterhin sichtbar, aber der Fokus liegt in einem anderen Fenster oder Programm. Sie sehen diesen Tab an, tippen aber woanders, oder ein anderes Fenster liegt darüber.

Verborgen — der Tab wird überhaupt nicht gezeichnet: ein anderer Tab liegt davor, das Fenster ist minimiert, oder der Bildschirm des Geräts ist aus.

Die Abwesenheitsuhr startet beim ersten Ereignis, das den Fokus nimmt, und stoppt, wenn beide Werte wieder wahr sind. Ein blur, der in einen Tabwechsel übergeht, zählt daher als eine einzige zusammenhängende Abwesenheit.

Was er nicht sieht

Keiner dieser Werte verrät, wohin Sie gegangen sind. Die Seite erfährt, dass dieser Tab nicht mehr der aktive war und wie lange — nicht welcher Tab, welches Programm oder was auf dem Bildschirm zu sehen war.

Alles, was außerhalb des Browsers geschieht, ohne den Tastaturfokus zu verschieben, ist für diese API unsichtbar, weil schlicht kein Ereignis ausgelöst wird. Dazu zählen ein zweites Gerät, ein ausgedrucktes Blatt oder eine weitere Person im Raum.

Die Zahl allein beweist nichts. Eine Benachrichtigung, die den Fokus stiehlt, ein Screenreader-Panel, eine Systemaktualisierungsmeldung und ein bewusster Tabwechsel erzeugen dasselbe Ereignis.

Ernsthaftes Proctoring verlässt sich nicht darauf allein. Kamera, Mikrofon, Bildschirmfreigabe und installierte Lockdown-Browser sehen weit mehr als eine Webseite — für einen weiteren Wert, den eine Seite ungefragt auslesen kann, siehe den Test zur Erkennung externer Monitore.

Datenschutz

Die Seite ist statisch. Keine Analytics, keine Cookies, kein lokaler Speicher, und nach dem Laden keine einzige Netzwerkanfrage.

Jeder Zähler und jeder Zeitstempel auf dieser Seite wird in Ihrem Tab berechnet und ist weg, sobald Sie ihn schließen. Neu laden setzt alles zurück.

Sie können alles nachlesen: eine einzige JavaScript-Datei, verlinkt in der Fußzeile.

Browser-Unterstützung

visibilitychange und document.hasFocus() funktionieren in jedem aktuellen Browser, am Rechner wie am Handy, ohne Berechtigung und ohne sicheren Ursprung.

freeze und resume gibt es nur in Chromium; sie werden ausgelöst, wenn der Browser einen Hintergrund-Tab zum Sparen von Speicher anhält. Andere Browser melden sie schlicht nie.

Unter iOS wird ein App-Wechsel als verborgen und nicht als Fokusverlust gemeldet, weil der gesamte Browser in den Hintergrund geht. Die Unterscheidung existiert nur dort, wo es Fenster gibt.

Häufige Fragen

Kann eine Website erkennen, wenn ich den Tab wechsle?

Ja, und zwar ganz ohne Berechtigung. Das Ereignis visibilitychange wird in dem Moment ausgelöst, in dem Ihr Tab nicht mehr der sichtbare ist, und document.visibilityState meldet hidden, bis Sie zurückkehren. Jeder aktuelle Browser setzt das um, auch mobile. Es gibt keine Einstellung, die das vor einer Seite verbirgt.

Kann ein Online-Assessment Tabwechsel und das Öffnen eines anderen Programms unterscheiden?

Ja. Ein Tabwechsel macht die Seite verborgen; ein Klick in ein anderes Fenster oder Programm lässt die Seite sichtbar, nimmt ihr aber den Tastaturfokus, wodurch stattdessen ein blur-Ereignis ausgelöst wird. Eine Plattform, die beides protokolliert, kann sie auseinanderhalten — und diese Seite zeigt beides getrennt, damit Sie den Unterschied selbst sehen.

Weiß ein Online-Test, zu welchem Tab oder Programm ich gewechselt bin?

Nein. Der Browser teilt der Seite nur mit, dass sie nicht mehr das aktive Dokument ist, und wie lange das dauerte. Das Ziel — ein anderer Tab, ein anderes Programm, ein gesperrter Bildschirm — wird nie preisgegeben. Alles Genauere erfordert Bildschirmfreigabe oder einen installierten Lockdown-Browser; beides ist sichtbar und muss bestätigt werden.

Zählt ein Screenshot als Verlassen der Seite?

Das hängt vollständig davon ab, wie der Screenshot gemacht wird. Ein Tastenkürzel, das das Betriebssystem ohne eigene Oberfläche abwickelt, löst nichts aus, weil der Browser den Fokus nie verliert. Alles, was einen Auswahlrahmen, ein Panel oder ein Vorschaufenster öffnet, nimmt dagegen den Fokus — und das wird als blur erfasst. Probieren Sie beides auf dieser Seite aus und beobachten Sie das Protokoll.

Warum ist mein Zähler gestiegen, obwohl ich nicht den Tab gewechselt habe?

Den Fokus stehlen mehr Dinge, als man erwartet: Benachrichtigungsbanner, Passwortmanager-Fenster, eine Systemaktualisierungsmeldung, ein Tastenkürzel-Launcher oder Entwicklertools in einem eigenen Fenster. Sie alle lösen ein blur-Ereignis aus, das von einem bewussten Wechsel nicht zu unterscheiden ist.

Lässt sich diese Erkennung in den Browsereinstellungen abschalten?

Nein. Die Page Visibility API ist Teil des Dokuments selbst und keine Berechtigung, es gibt also nichts zu widerrufen. Sie zu blockieren würde legitime Anwendungen zerstören, etwa Video pausieren, Animationen anhalten und Timer in Hintergrund-Tabs stoppen.

Verhindert ein zweiter Monitor, dass Tabwechsel erfasst werden?

Nein. Den Blick auf den zweiten Bildschirm zu richten ändert nichts, aber ein Klick in ein Fenster auf diesem Bildschirm nimmt diesem Tab den Tastaturfokus und löst genau dasselbe blur-Ereignis aus wie bei einem einzigen Bildschirm. Ob der zweite Bildschirm selbst für eine Seite sichtbar ist, ist eine andere Frage — die behandelt der Test zur Erkennung externer Monitore.

Wird davon irgendetwas an einen Server gesendet?

Nein. Die Seite ist statisch, hat weder Analytics noch Cookies und stellt nach dem Laden keine Netzwerkanfragen. Jedes angezeigte Ereignis und jeder Timer wird in Ihrem Tab berechnet und beim Schließen verworfen.