a11y: Web Interface Guidelines — 19 правок доступности и семантики

- base.html: lang динамический, meta theme-color, skip-link, убран дубль Dashboard
- Фильтры: labels на search/select, type=search, placeholder с …, autocomplete=off
- llm-retry: <span> → <button> во всех шаблонах (_llm_report, scan, package)
- sortable th: tabindex=0, role=button через JS + keyboard handler
- sort-icon: aria-hidden=true
- style.css: color-scheme:dark, prefers-reduced-motion, tabular-nums, touch-action
- app.js: clipboard fallback для не-HTTPS
This commit is contained in:
Marker689
2026-05-10 11:45:41 +03:00
parent 32dc179f25
commit dea9e0a6e4
11 changed files with 78 additions and 30 deletions

View File

@@ -60,11 +60,11 @@
<span class="llm-severity">{{ f.report.severity_rating }}</span>
{% endif %}
{% if config.llm_enabled and not config.llm_auto_analyze %}
<span class="llm-retry"
<button class="llm-retry"
hx-post="/api/v1/findings/{{ f.id }}/analyze?retry=1"
hx-target="closest .llm-report"
hx-swap="outerHTML"
hx-indicator="closest .llm-report">{{ t('llm_retry', request.state.lang) }}</span>
hx-indicator="closest .llm-report">{{ t('llm_retry', request.state.lang) }}</button>
{% endif %}
</div>
<p class="llm-summary">{{ f.report.summary }}</p>