Independent layers of protection so integrity is never left to chance — and never relies on a proctor being in the room.
Each layer closes a different escape route. Together they make casual cheating impractical.
What a candidate can and cannot do once the exam goes live.
| Input | Exam-live behaviour | Enforced by |
|---|---|---|
| F11 / ESC | Blocked — no fullscreen escape | keydown capture |
| F1–F12 | Suppressed | key event filter |
| Ctrl / Cmd combinations | Suppressed (copy, paste, print, devtools) | modifier guard |
| Alt + Tab / Windows key | Blocked | key event filter |
| Print Screen | Blocked | key event filter |
| Right click | No context menu | contextmenu handler |
| Copy / cut / paste | Blocked | clipboard events |
| Drag & drop text/images | Blocked | dragstart handler |
How one fullscreen exit is captured, recorded, and compensated.
The fullscreen change listener fires the moment the browser leaves fullscreen.
A timestamped record posts to /report_fullscreen_violation and the counter increments.
The countdown halts and the pause duration is added back to the exam's total time.
Every violation appears in the administrator's integrity report alongside the candidate ID and exact timestamp.
See the comparison