Story Share portal: Safety Exit quick-escape button
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- javascript
- Área
- accessibility, frontend, security
Línea de trabajo
Revisa primero el app/frontend/javascript/controllers/safety_exit_controller.js eliminado y los cambios de paridad del portal en PR #2148. Rastrea cómo se renderiza el portal /story_shares entre las páginas y en dispositivos móviles; después, define y verifica un control accesible y siempre visible, así como un atajo de teclado, cuyo comportamiento de navegación e historial coincida con los requisitos de seguridad acordados; documenta la limitación del historial del lado del cliente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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).
- Lenguaje dominante
- Ruby
- Estrellas
- 15
- Forks
- 28
- Merge medio
- 1 d 12 min
- PR fusionados (30 d)
- 262
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rubyforgood/awbw
-
blocked
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
rubyforgood/awbw#2824 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
rubyforgood/awbw#2822 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
rubyforgood/awbw#2160 ·
Los mantenedores suelen responder en 1 día
-
Update callout faq defualt text when the new person subscription launchesPosiblemente ocupada @maebeale la tomó hace 77 días. Abiertoblocked
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
rubyforgood/awbw#2095 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
rubyforgood/awbw#2088 ·
Los mantenedores suelen responder en 1 día
Todos los issues de rubyforgood/awbw
Issues similares
-
Liens externes cassésAbierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 66/100
betagouv/conseillers-entreprises#4770 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
seek4science/seek#2762 ·
Los mantenedores suelen responder en 5 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
rubyevents/rubyevents#2277 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 92/100
Los mantenedores suelen responder en 2 días