Story Share portal: Safety Exit quick-escape button
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 45/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- javascript
- Ambito
- accessibility, frontend, security
Direzione di ricerca
Esamina innanzitutto il app/frontend/javascript/controllers/safety_exit_controller.js rimosso e le modifiche di parità del portale in PR #2148. Traccia il modo in cui il portale /story_shares viene renderizzato tra le pagine e su dispositivi mobili, quindi definisci e verifica un controllo accessibile e sempre visibile e una scorciatoia da tastiera il cui comportamento di navigazione e cronologia corrisponda ai requisiti di sicurezza concordati; documenta la limitazione della cronologia lato client.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Context
The Story Share portal (/story_shares) serves an audience that includes domestic-violence survivors. The live WordPress site (stories.awbw.org) has a prominent "Safety Exit" button that lets a visitor leave the site instantly.
An initial JS implementation (a safety_exit Stimulus controller doing window.open + location.replace) was built and then removed from the portal-parity PR (#2148) to keep it lean — and because a plain no-JS link gives false security (it navigates away but doesn't scrub browser history, so the back button still returns to the story).
What's needed
- A Safety Exit control that meaningfully protects the visitor:
- Navigates away to a neutral site (e.g. weather.com) immediately.
- Scrubs/replaces history so the back button doesn't return to the portal (
location.replace, and ideally overwrite prior entries). - Optionally opens a decoy tab and/or clears the current tab's content first.
- Keyboard shortcut (the WP site / common patterns use a quick key) and a fixed, always-visible button on every portal page, including mobile.
- Accessibility: clearly labeled, high-contrast, reachable without scrolling.
- Document the inherent limitation (client-side JS cannot fully erase browser history) and decide whether that's acceptable or whether to add guidance.
Notes
Prior implementation for reference is in the git history of PR #2148 (app/frontend/javascript/controllers/safety_exit_controller.js, since removed).
- Lingua principale
- Ruby
- Stelle
- 15
- Fork
- 28
- Merge medio
- 1g 12m
- PR unite (30g)
- 262
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rubyforgood/awbw
-
blocked
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
rubyforgood/awbw#2824 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
rubyforgood/awbw#2822 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rubyforgood/awbw#2160 ·
I maintainer di solito rispondono entro 1 giorno
-
Update callout faq defualt text when the new person subscription launchesForse già presa @maebeale l’ha presa 77 giorni fa. Apertablocked
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
rubyforgood/awbw#2095 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
rubyforgood/awbw#2088 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di rubyforgood/awbw
Issue simili
-
Liens externes cassésAperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 66/100
betagouv/conseillers-entreprises#4770 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
seek4science/seek#2762 ·
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
rubyevents/rubyevents#2277 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 92/100
I maintainer di solito rispondono entro 2 giorni