Marcelo Paiva
bf4bbedc28
Fix WCAG 2.1 AA medium/high issues: keyboard nav, canvas ARIA, live regions, focus management
...
- H7: Add user_menu.js custom element for navbar dropdown keyboard navigation
(ArrowDown/Up, Enter/Space, Escape, roving tabindex, aria-expanded) (WCAG 2.1.1)
- H8: Add aria-label + fallback text to signature, initials, and QR canvas elements (WCAG 1.1.1)
- M3: Add role="textbox" + aria-label to field name contenteditable in area.vue (WCAG 4.1.2)
- M4: Add aria-hidden/aria-expanded to toggle_visible.js and field_condition.js (WCAG 4.1.2)
- M5: Add aria-label ("Show/Hide password") + aria-pressed to password_input.js toggle (WCAG 4.1.2)
- M6: Move focus to first input on addItem; announce removal via announcePolite in dynamic_list.js (WCAG 2.4.3)
- M7: Announce "Copied to clipboard" via announcePolite in clipboard_copy.js (WCAG 4.1.3)
- M9: Fix placeholder contrast text-neutral-400 → text-neutral-600 in contenteditable.vue (WCAG 1.4.3)
- M9: Fix placeholder contrast before:text-base-content/30 → /60 in template_builder/area.vue (WCAG 1.4.3)
- M11: Add persistent aria-live="polite" region for QR code appearance in signature_step.vue (WCAG 4.1.3)
- Fix missed alert() in initials_step.vue → initialsError data prop + live region (WCAG 4.1.3)
- Add canvas accessibility i18n keys: signature_drawing_pad, initials_drawing_pad, qr_code_for_mobile_signature
- Add field_name i18n key to template_builder for contenteditable aria-label
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks ago
Marcelo Paiva
e41dd55716
Fix WCAG 2.1 AA critical and high issues: viewport zoom, focus indicators, modals, alerts, labels
...
- C1: Remove maximum-scale/user-scalable=no from viewport meta (WCAG 1.4.4)
- C2: Restore focus indicators on 7 inputs — replace outline-none/ring-0 with ring (WCAG 2.4.7)
- C3: Add focus trap + dialog role to turbo_modal.js; focus on open, restore on close (WCAG 2.4.3, 2.1.2)
- C4/C6: Replace all alert()/prompt() with ARIA live regions and custom password dialog (WCAG 3.3.1, 4.1.3)
- C5: Add aria-label to signature text input, signing reason select, checkbox and radio in area.vue (WCAG 1.3.1, 4.1.2)
- C7: Replace text-gray-100 → text-white on dark code blocks in _embedding.html.erb (WCAG 1.4.3)
- H1: Change submission name div → h1 in submit_form/show.html.erb (WCAG 2.4.6)
- H2: form.html.erb already has lang attr (confirmed correct)
- H3: Add skip link to form.html.erb layout (WCAG 2.4.1)
- H4: Replace text-gray-300/400 → text-gray-600 on light backgrounds across 5 files (WCAG 1.4.3)
- H5: Replace <a> close buttons → <button> in turbo_modal partials (WCAG 4.1.2)
- H6: Fix duplicate id="decline_button" → header/scroll variants (WCAG 4.1.1)
- L10: Add role="button" tabindex="0" to html_modal label close (WCAG 4.1.2)
- Add shared aria_announce.js utility for assertive/polite live region announcements
- Add aria-labelledby to turbo modal dialog with per-instance IDs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks ago
Marcelo Paiva
a3109c6332
Add ARIA labels to icon-only buttons across the application
...
Fixed 12 icon-only buttons that lacked accessible names for screen readers:
Vue Components (8 buttons):
- template_builder/controls.vue: Move up/down/remove document buttons
- template_builder/area.vue: Remove field button
- template_builder/custom_field.vue: Settings/save/remove field buttons
- submission_form/attachment_step.vue: Remove attachment button
Rails Views (4 buttons):
- shared/_navbar.html.erb: User menu dropdown trigger
* Added role="button" and aria-haspopup for proper semantics
- shared/_turbo_modal.html.erb: Modal close button
- shared/_turbo_modal_large.html.erb: Modal close button
- shared/_html_modal.html.erb: Modal close button
All aria-labels use i18n translation keys (t()) for proper localization.
This satisfies WCAG 2.2 Success Criterion 4.1.2 (Name, Role, Value, Level A).
Screen reader users can now:
- Identify the purpose of icon-only buttons
- Navigate modals with proper announcements
- Use template builder controls effectively
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 month ago
Pete Matsyburka
93a852ac14
fix save modal
2 months ago
Alex Turchyn
12c767b7d3
add more options to context menu
2 months ago
Pete Matsyburka
2fc5e9cfb3
format cells
2 months ago
Pete Matsyburka
bccc78ee65
optimize builder
2 months ago
Pete Matsyburka
91814ca105
custom fields
2 months ago
Pete Matsyburka
43c41e2557
add select fields mode
2 months ago
Pete Matsyburka
bc8eb33f05
Revert "hide area name menu on desktop"
...
This reverts commit 5212773d0a .
2 months ago
Pete Matsyburka
5212773d0a
hide area name menu on desktop
2 months ago
Pete Matsyburka
9cc92b59b3
add strikethrough
6 months ago
Pete Matsyburka
5456abde54
adjust date input
7 months ago
Pete Matsyburka
cf60dae2ff
fix modal title
7 months ago
Pete Matsyburka
659997c6c1
add 2 options by default
7 months ago
Pete Matsyburka
719c1786f1
set default value
7 months ago
Pete Matsyburka
b2b97a313a
prefillable fields
8 months ago
Pete Matsyburka
ec9293bac0
with signature id
8 months ago
Pete Matsyburka
9dac90e6cc
cleanup
8 months ago
Pete Matsyburka
1f338dfd2b
adjust font size
8 months ago
Pete Matsyburka
4e5157d1ee
add text valign
11 months ago
Alex Turchyn
2a74fdd095
add field area classes
1 year ago
Pete Matsyburka
3affd67d24
add font field preferences
1 year ago
Pete Matsyburka
bc1d5a9825
add font type
1 year ago
Pete Matsyburka
3fec433846
fix builder editable
1 year ago
Pete Matsyburka
44e848a1f0
fix heading move
1 year ago
Pete Matsyburka
9aaf61e658
add number currency format
1 year ago
Alex Turchyn
c696890cf5
fix dropdowns in Firefox
1 year ago
Pete Matsyburka
e2b93cbcab
fix colors
1 year ago
Pete Matsyburka
6dff6483bf
fix default field title
1 year ago
Pete Matsyburka
2a240cebeb
allow to move fields between pages
1 year ago
Alex Turchyn
c2014a1549
fix field drawings on tablets
1 year ago
Pete Matsyburka
4429d742b3
document conditions
1 year ago
Pete Matsyburka
76f1f140ac
add field color
1 year ago
Oleksandr Turchyn
9479771fc8
fix i18n
1 year ago
Pete Matsyburka
b94e6bf54a
adjust font resize
2 years ago
Pete Matsyburka
0b4e345ad6
fix on paste
2 years ago
Pete Matsyburka
cdaadbab20
add input mode
2 years ago
Pete Matsyburka
10bb9112c7
add with field placeholder option
2 years ago
Pete Matsyburka
286b8d7067
add heading field
2 years ago
Pete Matsyburka
d219e3cd7e
do not move in preview
2 years ago
Pete Matsyburka
09b0022195
move fields with arrows
2 years ago
Alex Turchyn
749043dfbb
process acro form fields
2 years ago
Pete Matsyburka
6f4b9d4a4e
double click on builder checkbox
2 years ago
Pete Matsyburka
7fc7283191
copy and paste fields
2 years ago
Pete Matsyburka
af03560494
add radio select default value settings
2 years ago
Pete Matsyburka
988d1b93a5
double click to toggle signing date
2 years ago
Pete Matsyburka
044195f07b
blur on field move
2 years ago
Pete Matsyburka
35f159266a
paste raw text
2 years ago
Pete Matsyburka
3b717ae3de
double click to edit default value
2 years ago