If you read nothing else
Twitch currently lacks a reliable mechanism to warn viewers about content triggers. SafeWatch addresses this gap with a public tag database, where tags are tied to games rather than individual streamers, and publication requires consensus among independent contributors. I designed and built this system using AI-assisted development, creating a contributor application, studio verification process, moderation tools, and browser extensions that display tags on the stream page. The project is presently in a closed pilot with selected studios and contributors.
Context
An individual challenge that I was surprised hadn’t been developed yet.
As someone with emetophobia, I have firsthand experience with how poorly gaming platforms address this need. Studios occasionally offer launch-day content warnings, but these are a patchwork at best: inconsistent, rarely granular, and almost never present during live streams—which can lead to some unpleasant surprises when watching your favorite streamer.
During Twitch’s 2024 hiring process for a Senior Accessibility Program Manager, I pitched this idea as a community-driven solution. The role went to someone else, but the concept refused to leave my brain. So, as any designer with a stubborn streak would, I took it from speculative sketch to working prototype—just to see if it could actually work.
Streamers may hold the keys to their channels, but the audience—those directly affected—knows where the landmines are buried.
Problem
Viewers don’t know what triggers exist in a streamer’s game until they encounter it, and sometimes the streamer doesn’t know either.
Twitch has checked off many of the accessibility basics: captioning, screen reader support, colorblind modes, and so on. Yet the elephant in the room remains: unless a streamer personally deals with something like epilepsy or emetophobia, they’re unlikely to notice or flag the relevant triggers. Strobing effects and vomiting NPCs glide right under the radar, and neither Twitch nor third-party tools have managed to close this particular gap.
The gap is not for lack of asking. Twitch’s own feature-request hub has carried it since 2019 — five open requests, with more than 2,100 votes between them. The two largest requests ask for the same thing in different words: an epilepsy warning auto-tag (822 votes, opened 2019) and accessibility warning tags for games (847 votes, opened 2021), with the second absorbing a separate epilepsy-tag request as a duplicate. The rest ask for content warnings on the stream page, for filtering streams by tag, and for auto-tagging games that already ship their own trigger warnings.
Twitch did eventually roll out a warning infrastructure of sorts. Content Classification Labels arrived in 2023, offering six broad labels: mature-rated games, sexual themes, drugs, violence, profanity, and gambling. Notably absent are any mentions of photosensitivity, medical content, or psychological triggers—hardly the level of granularity needed to actually help viewers steer clear of specific issues.
Research
Before building anything, I had to answer three questions:
Specificity and consensus, as it turns out, are often at odds.
During initial card sorting exercises in user testing, individuals who interacted with the build would regularly describe the same trigger in different ways. “Epilepsy,” for example, could be described as “flashing lights,” “strobe warning,” or a myriad of other ways. While these all represented a single trigger, they resulted in three separate tags that fuzzy matching couldn’t reliably merge. While free-text input preserves the specificity viewers requested, it undermined the consensus the build needed to operate effectively. Consequently, this meant I had to convert the free-text labeling into a dropdown menu sourced from a fixed vocabulary per category, with the context field retaining the detailed scene information that previously required free text.
Creating that taxonomy required more critical and extensive research to determine what professionals generally agreed on.
Taxonomy
Where the sources converge and diverge.
Narrative Experiences Online (NEON), currently the only systematic review of content warnings in use, organizes terms by subject and was particularly compelling in shaping SafeWatch’s taxonomy, and was where I started my research. However, I struggled to adopt it wholesale to SafeWatch’s system.
- 7.8.4 Needles · 7.8.5 Eyes Medical
- 7.8.1 Spiders · 7.8.2 Snakes · 7.8.3 Insects Creature
- 7.8.6 Irregular patterns Sensory
To surface common themes, I compared it against the DSM-5-TR, Fear Survey Factor, WEBIS-36 Group, and additional clinical instrumentation; I let themes surface naturally for the new taxonomic grouping. I deliberately left out age-rating systems like ESRB and PEGI. While helpful, those systems ask, “Is this suitable for a specific age?” whereas SafeWatch, on the other hand, is trying to answer, “Will this provoke an involuntary response in the viewer?” That’s a fundamentally different question, and it calls for a different set of categorical research.
When I set the research sources side by side, I realized two categories were missing that merited inclusion: Creature and Stigma.
Creature exists because both clinical models treat animals as their own class: DSM-5 makes animals one of five phobia subtypes, and harmless-animal fear is one of five factors that held across 11 nations and 5,491 respondents. An earlier draft had spiders under Psychological, which users did not find intuitive during closed sorting tasks.
Stigma represents the inverse case. Both content-warning taxonomies address it extensively, whereas no clinical instrument does. Accordingly, its terms describe observable conduct within a scene; for example, “racial violence and slurs” is verifiable, while “racism” is interpretive. Because these tags are particularly susceptible to misuse, I decided they should bypass community voting and remain under continuous monitoring by the SafeWatch team.
| SafeWatch | DSM-5-TR subtype | Fear Survey factor | NEON category | Webis-36 group | Instruments |
|---|---|---|---|---|---|
| Sensory | Other (loud sounds) | Not covered | 13 Flashing lights; 7.8.6 Patterns | Not covered | Seizure thresholds, WCAG, simulator sickness, misophonia |
| Medical | Blood-injection-injury; other (vomiting) | Injury, illness, death | 4.4 Medical; 4.5 Bodies; 7.8.4 Needles | Medical; pregnancy | Medical Fear Survey, Disgust Scale, emetophobia inventory |
| Psychological | Not covered — not a phobia class | Sexual and aggressive scenes | 1 Violence; 7 Mental health; 8 Death; 11 Abuse | Aggression; abuse; mental health | Trauma event checklist (LEC-5), Disgust Scale |
| Situational | Situational; natural environment | Agoraphobic | 8.2 Accidents; 8.3 Disasters | Not covered | Claustrophobia Questionnaire, LEC-5 |
| Creature | Animal | Harmless animals | 7.8.1–7.8.3, under Anxiety | Not covered | Disgust Scale |
| Stigma | Not covered — not a phobia class | Not covered | 3 Stigma — 328 of 2,209 warnings | Discrimination — 9 of 36 labels | Not covered |
Determining the categories for potential triggers.
Research eventually surfaced 66 terms across six categories, and every term traces to at least one published model. These are based around two types of sourcing: clinical instruments, which show how fear and disgust cluster in people, and the two existing content-warning taxonomies, which show the words people already use.
- Flashing lights
- Rapid strobing
- Saturated red flashing
- High-contrast repeating patterns
- Screen shake and camera motion
- Sudden loud sounds
- Sustained high-pitched tones
- Mouth and body sounds
- Needles and injections
- Blood draws and IV lines
- Blood
- Open wounds and gore
- Amputation and dismemberment
- Surgery and medical procedures
- Eye injury or eye surgery
- Dental procedures
- Vomiting
- Illness and physical symptoms
- Sharp objects and blades
- Bodily fluids and waste
- Parasites and infestation
- Childbirth
- Miscarriage or pregnancy loss
- Graphic violence against people
- Torture
- Sexual violence
- Child abuse
- Domestic violence
- Animal cruelty
- Death of a child
- Grief and bereavement
- Self-harm
- Suicide
- Disordered eating
- Addiction and substance use
- Mental illness and psychiatric care
- Panic attacks
- Body horror and transformation
- Kidnapping and captivity
- Animal death
- Heights and falling
- Enclosed spaces
- Restraint and immobilization
- Suffocation and choking
- Drowning
- Deep or open water
- Total darkness
- Storms and extreme weather
- Natural disaster
- Fire and burning
- Vehicle crashes
- Air travel
- Crowds and open spaces
- Spiders
- Insects and swarms
- Snakes
- Rats and vermin
- Aggressive dogs
- Racial violence and slurs
- Religious persecution and slurs
- Slavery and forced labour
- Genocide and ethnic cleansing
- Homophobic violence and slurs
- Transphobic violence and slurs
- Misogynistic violence and slurs
- Ableist violence and slurs
How it works
No content is published based solely on a single individual’s report.
One report per account. Blocks one-person spam.
Who can do what
As the saying goes, great power comes with great responsibility.
Each role is assigned the minimum permissions needed to do its job. Studios may publish tags for their own games but cannot modify tags created by others; they must submit a request with justification, which a moderator then reviews. A flagged tag is never hidden automatically.
| What you can do | Anonymous | Contributor | Studio | Moderator | Owner |
|---|---|---|---|---|---|
| Read — no account needed | |||||
| Browse and search the database | Yes | Yes | Yes | Yes | Yes |
| Flag a published tag as wrong | Yes | Yes | Yes | Yes | Yes |
| Contribute — Twitch login | |||||
| Submit a trigger tag | No | Yes | Yes | Yes | Yes |
| Vote in the review queue | No | Yes | Yes | Yes | Yes |
| Track your own submissions by stage | No | Yes | Yes | Yes | Yes |
| Propose a term the vocabulary lacks | No | Yes | Yes | Yes | Yes |
| Publish | |||||
| Publish a tag immediately, with no vote | No | No | Limited — approved games only | Yes | Yes |
| Tag a Stigma trigger | No | No | Limited — approved games only | Yes | Yes |
| Edit or delete a tag you published | No | No | Yes | Yes | Yes |
| Remove a tag you did not write. | No | No | Limited — by request only | Yes | Yes |
| Moderate | |||||
| Approve or deny a deletion request | No | No | No | Yes | Yes |
| Accept or decline a term request | No | No | No | Yes | Yes |
| Act on a flagged tag | No | No | No | Yes | Yes |
| See pending, voting and rejected tags | No | No | No | Yes | Yes |
| Read the audit log | No | No | No | Yes | Yes |
| Administer | |||||
| Approve studio applicants and their games | No | No | No | No | Yes |
| Grant moderator access | No | No | No | No | Yes |
The product
From looking up a game to verifying a studio.
Look up a game
Anyone can search or view game pages without an account. Tags are sorted into six color-coded categories, with studio and SafeWatch team tags shown first. Each occurrence shows whether it is unavoidable, partially avoidable, or avoidable.
Viewers typically check a game while deciding whether to watch, often using a second screen. On displays below 640 pixels, the sidebar becomes a drawer, and badges and actions sit beneath each occurrence’s context to save space.
Report a trigger
A report includes a category, a trigger picked from that category’s list, and a description of where it occurs. The standardized list lets multiple users report the same trigger. The context field gives scene-level detail, and categories that contributors cannot access are still visible, along with the reason why. Games often repeat triggers. For example, Cyberpunk has flashing lights in both braindances and relic glitches. If a submission matches an existing tag, the form asks the user whether it is the same occurrence or a different part of the game.
Reporting a trigger. On the Cyberpunk 2077 game page, which lists two published Flashing lights tags, the contributor opens Submit a trigger tag. The form shows the game, six category buttons with Stigma greyed out and a note that it is limited to studio and SafeWatch-team accounts, a Trigger dropdown, an optional Context field, Avoidability, and a How review works box explaining both stages. The contributor picks Sensory, then Flashing lights, types the context “Nightclub dance floors with strobe lighting,” sets Partially avoidable and submits. A duplicate check asks whether this is the same occurrence or a different part of the game, listing the two published Flashing lights tags for braindance sequences and relic malfunctions. The contributor chooses “This is a different part of the game” and a Tag submitted confirmation explains that it enters the voting queue once five contributors report it.
Agree, or don’t
Voters can view information from Twitch’s game database combined with SafeWatch’s API: box art, category, label, report count, and the submitter’s context on demand. After voting, the buttons are replaced with a record of the user’s choice, so the queue shows only what it still needs action on.
Voting. From the Browse page the contributor opens the Voting queue, where each card shows box art, the game, a category badge, the trigger, the number of independent submissions, a See context link, and an agreement bar colored by category with confirm and dispute counts. The contributor opens the first card’s context, which reads “House Beneviento’s basement sequence,” and confirms it; the Confirm and Dispute buttons are replaced by “You confirmed this tag.” The Sensory filter narrows the queue, then My Submissions lists the contributor’s own tags with category-colored borders and status badges, the newest a Pending Flashing lights report for Cyberpunk 2077 at 1 of 5 reports, followed by Published and In voting tags.
Onto the stream
The original, intended destination for tags has always been the stream interface itself, presented as a discreet informational bar within the viewer’s line of sight. The Chrome extension adds a strip below the stream information. Tags are color- and icon-coded by source origin: studio in teal, SafeWatch team in blue, and community in amber. Viewers can click into a tag to get more contextual information from the SafeWatch database.
Verify a studio
Studios can publish tags right away, which can open the door to impersonation risks. New studio users pick their role through a simple process. An IGDB check compares the applicant’s Twitch name with the credited developers for each game and returns a result of strong, possible, or no match. This evidence goes to the SafeWatch team, who makes the final call for each game.
Studio verification. A new account sees a Welcome to SafeWatch modal with two choices, I’m a Contributor and I’m a Studio Developer, each describing what it allows and requires. The applicant chooses Studio Developer, enters the studio name Kinetic Games, searches for and selects Phasmophobia, and submits; a Request submitted message says the owner will review the studio and game assignments. The view then changes to the owner’s dashboard, where KineticGames appears under Pending Requests. The owner expands the request and runs the IGDB check, which returns Phasmophobia, credited to Kinetic Games, as a Strong match, then approves; the applicant becomes a Developer and the Phasmophobia assignment turns green.
Outcome
A closed pilot for studios and contributors on request.
The result is a working end-to-end system now in a closed pilot: a public database open to all, a contributor app with submission, duplicate handling, voting, and per-stage tracking, five roles with carefully limited powers, studio verification, deletion requests, an audit log, and an extension that puts tags right on the stream page.
References
- Accessibility warning tags for games. (2021). Twitch UserVoice. Retrieved September 29, 2026, from https://twitch.uservoice.com/forums/926080-user-accessibility/suggestions/42767756-accessibility-warning-tags-for-games (opens in new tab)
- Amazon Web Services. (n.d.). Use cases that involve public safety. Amazon Rekognition Developer Guide. Retrieved September 29, 2026, from https://docs.aws.amazon.com/rekognition/latest/dg/considerations-public-safety-use-cases.html (opens in new tab)
- American Psychiatric Association. (2022). Diagnostic and statistical manual of mental disorders (5th ed., text rev.). https://doi.org/10.1176/appi.books.9780890425787 (opens in new tab)
- Arrindell, W. A., Eisemann, M., Richter, J., Oei, T. P. S., Caballo, V. E., van der Ende, J., Sanavio, E., Bagés, N., Feldman, L., Torres, B., Sica, C., Iwawaki, S., Edelmann, R. J., Crozier, W. R., Furnham, A., & Hudson, B. L. (2003). Phobic anxiety in 11 nations: Part I: Dimensional constancy of the five-factor model. Behaviour Research and Therapy, 41(4), 461–479. https://doi.org/10.1016/S0005-7967(02)00047-5 (opens in new tab)
- Bridgland, V. M. E., Jones, P. J., & Bellet, B. W. (2024). A meta-analysis of the efficacy of trigger warnings, content warnings, and content notes. Clinical Psychological Science, 12(4), 751–771. https://doi.org/10.1177/21677026231186625 (opens in new tab)
- Cai, J., Chowdhury, S., Zhou, H., & Wohn, D. Y. (2023). Hate raids on Twitch: Understanding real-time human-bot coordinated attacks in live streaming communities. Proceedings of the ACM on Human-Computer Interaction, 7(CSCW2), 1–28. https://doi.org/10.1145/3610191 (opens in new tab)
- Charles, A., Hare-Duke, L., Nudds, H., Franklin, D., Llewellyn-Beardsley, J., Rennick-Egglestone, S., Gust, O., Ng, F., Evans, E., Knox, E., Townsend, E., Yeo, C., & Slade, M. (2022). Typology of content warnings and trigger warnings: Systematic review. PLOS ONE, 17(5), Article e0266722. https://doi.org/10.1371/journal.pone.0266722 (opens in new tab)
- Does the dog die? (n.d.). DoesTheDogDie.com. Retrieved September 29, 2026, from https://www.doesthedogdie.com/ (opens in new tab)
- Epilepsy Foundation. (n.d.). Streaming toolkit [Stream for Epilepsy]. Retrieved September 29, 2026, from https://donate.epilepsy.com/index.cfm?fuseaction=cms.page&id=1815&eventID=749 (opens in new tab)
- Epilepsy warning auto-tag. (2019). Twitch UserVoice. Retrieved September 29, 2026, from https://twitch.uservoice.com/forums/310210-discover/suggestions/38811181-epilepsy-warning-auto-tag (opens in new tab)
- Game Content Triggers Database. (n.d.). Game Content Triggers Database [Archived]. Retrieved September 29, 2026, from https://gamecontenttriggers.com/ (opens in new tab)
- Harding, G., Wilkins, A. J., Erba, G., Barkley, G. L., & Fisher, R. S. (2005). Photic- and pattern-induced seizures: Expert consensus of the Epilepsy Foundation of America Working Group. Epilepsia, 46(9), 1423–1425. https://doi.org/10.1111/j.1528-1167.2005.31305.x (opens in new tab)
- Kennedy, R. S., Lane, N. E., Berbaum, K. S., & Lilienthal, M. G. (1993). Simulator sickness questionnaire: An enhanced method for quantifying simulator sickness. The International Journal of Aviation Psychology, 3(3), 203–220. https://doi.org/10.1207/s15327108ijap0303_3 (opens in new tab)
- Kleinknecht, R. A., Thorndike, R. M., & Walls, M. M. (1996). Factorial dimensions and correlates of blood, injury, injection and related medical fears: Cross validation of the Medical Fear Survey. Behaviour Research and Therapy, 34(4), 323–331. https://doi.org/10.1016/0005-7967(95)00072-0 (opens in new tab)
- Olatunji, B. O., Williams, N. L., Tolin, D. F., Abramowitz, J. S., Sawchuk, C. N., Lohr, J. M., & Elwood, L. S. (2007). The Disgust Scale: Item analysis, factor structure, and suggestions for refinement. Psychological Assessment, 19(3), 281–297. https://doi.org/10.1037/1040-3590.19.3.281 (opens in new tab)
- Radomsky, A. S., Rachman, S., Thordarson, D. S., McIsaac, H. K., & Teachman, B. A. (2001). The Claustrophobia Questionnaire. Journal of Anxiety Disorders, 15(4), 287–297. https://doi.org/10.1016/S0887-6185(01)00064-0 (opens in new tab)
- Swedo, S. E., Baguley, D. M., Denys, D., Dixon, L. J., Erfanian, M., Fioretti, A., Jastreboff, P. J., Kumar, S., Rosenthal, M. Z., Rouw, R., Schiller, D., Simner, J., Storch, E. A., Taylor, S., Vander Werff, K. R., Altimus, C. M., & Raver, S. M. (2022). Consensus definition of misophonia: A Delphi study. Frontiers in Neuroscience, 16, Article 841816. https://doi.org/10.3389/fnins.2022.841816 (opens in new tab)
- Twitch. (2023, June 20). Introducing Content Classification Labels. Twitch Blog. https://blog.twitch.tv/en/2023/06/20/introducing-content-classification-labels/ (opens in new tab)
- Veale, D., Ellison, N., Boschen, M. J., Costa, A., Whelan, C., Muccio, F., & Henry, K. (2013). Development of an inventory to measure specific phobia of vomiting (emetophobia). Cognitive Therapy and Research, 37(3), 595–604. https://doi.org/10.1007/s10608-012-9495-y (opens in new tab)
- Weathers, F. W., Blake, D. D., Schnurr, P. P., Kaloupek, D. G., Marx, B. P., & Keane, T. M. (2013). The Life Events Checklist for DSM-5 (LEC-5) [Measurement instrument]. National Center for PTSD. https://www.ptsd.va.gov/ (opens in new tab)
- Wiegmann, M., Wolska, M., Schröder, C., Borchardt, O., Stein, B., & Potthast, M. (2023). Trigger warning assignment as a multi-label document classification problem. In Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) (pp. 12113–12134). Association for Computational Linguistics. https://doi.org/10.18653/v1/2023.acl-long.676 (opens in new tab)
- World Wide Web Consortium. (2023, October 5). Web Content Accessibility Guidelines (WCAG) 2.2 [W3C Recommendation]. https://www.w3.org/TR/WCAG22/ (opens in new tab)
- X. (n.d.). Note ranking algorithm. Community Notes Guide. Retrieved September 29, 2026, from https://communitynotes.x.com/guide/en/under-the-hood/ranking-notes (opens in new tab)
- Zhang, X., Gupta, M., Altland, E., & Lee, S. W. (2025). “Fewer views if they have TW.”: Understanding users’ perceptions of trigger warning and content warning on social media platforms in the U.S. Proceedings of the ACM on Human-Computer Interaction, 9(7), 1–34. https://doi.org/10.1145/3757692 (opens in new tab)