Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Improve accessibility of dynamically updated FAQ-related articles

Abierto
#65 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
52/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
perl

Línea de trabajo

Start at the FAQRelatedArticles widget on the customer ticket form and trace its AJAX replacement, heading, layout, and localization paths. Verify loading, result, no-result, and error announcements without moving focus, add the debounce and semantic structure, then test the widget with a screen reader and keyboard navigation.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Description
The “Helpful articles” (FAQRelatedArticles) widget on the customer ticket form is updated dynamically based on the entered subject and message body.
Currently, these updates are not reliably announced by screen readers. The widget also contains presentational clearing elements, skips a heading level, and sends requests without a short debounce delay.

Current behavior

  • Loading, results, “no results,” and request errors are not announced to screen readers.
  • The dynamic content is replaced entirely after each AJAX response.
  • The page heading hierarchy changes from <h1> directly to <h3>.
  • .Clear elements are used for layout.
  • Searches are triggered without a debounce delay.
  • Article results are already rendered as descriptive links inside a <ul>.
  • Updating the widget does not move keyboard focus.

Expected behavior

  • Screen readers receive concise, non-interrupting status announcements.
  • Announcements cover:
    • Loading
    • One matching article
    • Multiple matching articles
    • No matching articles
    • Loading errors
  • The article list itself is not automatically read in full.
  • Keyboard focus remains in the subject or message field.
  • Requests are delayed briefly to prevent unnecessary repeated updates.
  • The widget has a correct heading hierarchy and semantic region.
  • Layout is handled through CSS rather than .Clear elements.
  • Status messages are translated.

Proposed implementation

  • Add a persistent status element:
<div id="FAQRelatedArticlesStatus"
     class="FAQRelatedArticlesStatus"
     role="status"
     aria-atomic="true"></div>
  • Keep the status element outside the content replaced by AJAX.
  • Render the widget as a labelled section:
<section id="FAQRelatedArticles"
         aria-labelledby="FAQRelatedArticlesHeading">
    <h2 id="FAQRelatedArticlesHeading">
        Helpful articles
    </h2>
</section>
  • Update the status text after each request without moving focus.
  • Add a 400 ms debounce before starting the FAQ search.
  • Add localized singular, plural, no-result, and error messages.
  • Remove .Clear elements and use flexbox for the header layout.
Lenguaje dominante
Perl
Estrellas
0
Forks
6
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de RotherOSS/FAQ

Todos los issues de RotherOSS/FAQ

Issues similares

Más issues de Perl

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.