@equal-experts/kuat-vue 0.12.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/agent-docs/AGENTS.md +10 -0
- package/agent-docs/README.md +17 -0
- package/agent-docs/bundle-manifest.json +63 -0
- package/agent-docs/components/_template.md +21 -0
- package/agent-docs/components/button-group.md +27 -0
- package/agent-docs/components/button.md +50 -0
- package/agent-docs/components/components.manifest.json +20 -0
- package/agent-docs/components/kuat-header.md +27 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/LOADING.md +166 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/accessibility.md +444 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/brand.md +99 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/README.md +28 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/formatting.md +93 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/numbers.md +69 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/punctuation.md +75 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/voice-and-tone.md +263 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/writing-style.md +91 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/design/README.md +28 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/design/borders.md +159 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/design/colours.md +173 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/design/design-language.md +116 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/design/spacing.md +130 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/design/typography.md +155 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/logo.md +151 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/content/README.md +26 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/content/blog-posts.md +33 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/content/marketing-content.md +65 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/content/seo.md +44 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/emails.md +74 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/scenarios/README.md +18 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/scenarios/marketing-pages.md +368 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/marketing/website.md +169 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/DEPRECATIONS.md +28 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/README.md +65 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/accessibility.md +402 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/component-decision-tree.md +263 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/component-registry.md +68 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/README.md +29 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/actions.md +51 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/confirmations.md +57 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/empty-states.md +43 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/errors.md +54 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/forms.md +74 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/content/product-content.md +138 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/design.md +207 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/emails.md +71 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/review-checklist.md +57 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/review-context.md +44 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/scenarios/README.md +82 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/scenarios/authentication.md +303 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/scenarios/dashboards.md +313 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/scenarios/documentation.md +333 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/scenarios/forms.md +361 -0
- package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/types/web/product/technical.md +488 -0
- package/agent-docs/kuat-docs/rules/README.md +148 -0
- package/agent-docs/kuat-docs/rules/design/layouts.md +394 -0
- package/agent-docs/kuat-docs/rules/scenarios/README.md +83 -0
- package/agent-docs/kuat-docs/rules/scenarios/authentication.md +301 -0
- package/agent-docs/kuat-docs/rules/scenarios/dashboards.md +314 -0
- package/agent-docs/kuat-docs/rules/scenarios/documentation.md +333 -0
- package/agent-docs/kuat-docs/rules/scenarios/forms.md +359 -0
- package/agent-docs/kuat-docs/rules/scenarios/marketing-pages.md +367 -0
- package/agent-docs/manifest.json +9 -0
- package/agent-docs/rules/LOADING-consumer.md +27 -0
- package/dist/{AccordionTrigger-BRz5PzEd.js → AccordionTrigger-BGVFRlgt.js} +1 -1
- package/dist/{AlertDialogTrigger.vue_vue_type_script_setup_true_lang-CK1Um8CY.js → AlertDialogTrigger.vue_vue_type_script_setup_true_lang-DosgAcSM.js} +1 -1
- package/dist/{KuatSelect.vue_vue_type_script_setup_true_lang-DP66U_wg.js → KuatSelect.vue_vue_type_script_setup_true_lang-CT1xn9gs.js} +1 -1
- package/dist/accordion.js +1 -1
- package/dist/alert-dialog.js +1 -1
- package/dist/button-group.js +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/components/ui/icon-button/IconButton.vue.d.ts +62 -0
- package/dist/components/ui/icon-button/constants.d.ts +13 -0
- package/dist/components/ui/icon-button/index.d.ts +14 -0
- package/dist/components/ui/kuat-header/KuatHeader.vue.d.ts +7 -6
- package/dist/components/ui/kuat-header/constants.d.ts +79 -0
- package/dist/components/ui/kuat-header/index.d.ts +3 -2
- package/dist/components/ui/kuat-header/kuat-header.logic.d.ts +29 -0
- package/dist/components/ui/select/KuatSelect.vue.d.ts +2 -2
- package/dist/components/ui/select/SelectTrigger.vue.d.ts +1 -1
- package/dist/{constants-Ils7NSfg.js → constants-BZKku54w.js} +1 -1
- package/dist/{constants-BpzIL1jq.js → constants-DC1CCNlp.js} +1 -1
- package/dist/{constants-D_fYMnOg.js → constants-DWBWMp2p.js} +1 -1
- package/dist/icon-button.d.ts +3 -0
- package/dist/icon-button.js +12 -0
- package/dist/index-OELvcT-N.js +54 -0
- package/dist/{index-iz_NZI-V.js → index-Tp80OeHH.js} +1 -1
- package/dist/index-lZY__1xm.js +76 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +1188 -392
- package/dist/radio.js +1 -1
- package/dist/select.js +1 -1
- package/dist/style.css +1 -1
- package/dist/switch.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/package.json +8 -2
- package/dist/index-A7umpmtg.js +0 -37
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
---
|
|
2
|
+
scope: general
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Accessibility
|
|
6
|
+
|
|
7
|
+
Foundational accessibility requirements for Equal Experts content and products. These rules ensure products and services deliver the best experience for all users.
|
|
8
|
+
|
|
9
|
+
**Target: WCAG 2.2 Level AA compliance.**
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Quick reference
|
|
14
|
+
|
|
15
|
+
- **Standard:** WCAG 2.2 Level AA (legal baseline for many contexts).
|
|
16
|
+
- **Contrast:** Body text 4.5:1, large text/UI 3:1; never rely on colour alone for meaning.
|
|
17
|
+
- **Typography:** Min body 11pt (14px), line height 1.5; use relative units; support 200% zoom.
|
|
18
|
+
- **Motion:** Provide reduced-motion alternative; no auto-play without user control.
|
|
19
|
+
- **Images:** Meaningful images need alt text; decorative images need empty or role="presentation".
|
|
20
|
+
- **Links/buttons:** Descriptive labels; visible focus; keyboard operable.
|
|
21
|
+
- **Content:** Plain language; logical structure (headings, lists); person-first language.
|
|
22
|
+
- **Testing:** Use contrast checkers and automated a11y tools; test with keyboard and screen reader.
|
|
23
|
+
|
|
24
|
+
*Full detail follows.*
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Why Accessibility Matters
|
|
29
|
+
|
|
30
|
+
Accessibility is the practice of making information, activities, and environments sensible, meaningful, and usable for as many people as possible.
|
|
31
|
+
|
|
32
|
+
### The Case for Accessibility
|
|
33
|
+
|
|
34
|
+
- **16% of the global population** (1.3 billion people) live with a significant disability
|
|
35
|
+
- **Legal requirements** - UK Public Sector organisations must create accessible products, websites, and services
|
|
36
|
+
- **Better UX for everyone** - Accessible design benefits older people, non-native English speakers, those with temporary disabilities, and situational limitations (bright sunlight, noisy environments)
|
|
37
|
+
- **Extended reach** - Accessible content reaches more users and improves overall satisfaction
|
|
38
|
+
|
|
39
|
+
### Equal Experts Commitment
|
|
40
|
+
|
|
41
|
+
If we want clients to trust us on accessibility, we must lead by example. All content we produce—websites, documents, applications—should reflect our commitment to accessibility.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## WCAG Principles (POUR)
|
|
46
|
+
|
|
47
|
+
The Web Content Accessibility Guidelines are built on four principles:
|
|
48
|
+
|
|
49
|
+
| Principle | Description |
|
|
50
|
+
|-----------|-------------|
|
|
51
|
+
| **Perceivable** | Information must be presented in ways users can perceive using their senses |
|
|
52
|
+
| **Operable** | All users must be able to interact with interface components |
|
|
53
|
+
| **Understandable** | Users must be able to understand information and how to operate the UI |
|
|
54
|
+
| **Robust** | Content must work with assistive technologies and user agents |
|
|
55
|
+
|
|
56
|
+
### Conformance Levels
|
|
57
|
+
|
|
58
|
+
| Level | Description |
|
|
59
|
+
|-------|-------------|
|
|
60
|
+
| A | Minimum conformance (bare minimum) |
|
|
61
|
+
| **AA** | Mid-range conformance (our target) |
|
|
62
|
+
| AAA | Highest conformance level |
|
|
63
|
+
|
|
64
|
+
**Equal Experts targets AA compliance** - this is the standard for most legal requirements.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Visual Accessibility
|
|
69
|
+
|
|
70
|
+
Visual accessibility ensures that design choices don't exclude users with visual impairments, colour blindness, or other conditions that affect how they perceive content.
|
|
71
|
+
|
|
72
|
+
**Key principle:** Design should never rely solely on visual characteristics to convey meaning.
|
|
73
|
+
|
|
74
|
+
### Colour Contrast
|
|
75
|
+
|
|
76
|
+
Sufficient contrast between text and background is essential for readability.
|
|
77
|
+
|
|
78
|
+
| Content Type | Minimum Ratio | Example |
|
|
79
|
+
|--------------|---------------|---------|
|
|
80
|
+
| Body text | 4.5:1 | Standard paragraphs, labels |
|
|
81
|
+
| Large text (18pt+ or 14pt bold) | 3:1 | Headings, large buttons |
|
|
82
|
+
| UI components | 3:1 | Borders, icons, focus indicators |
|
|
83
|
+
| Print materials | 7:1 | Higher due to printing variables |
|
|
84
|
+
|
|
85
|
+
Use contrast checking tools to verify ratios. See [Testing Tools](#testing-tools).
|
|
86
|
+
|
|
87
|
+
### Colour Usage
|
|
88
|
+
|
|
89
|
+
**Never use colour alone to convey information.**
|
|
90
|
+
|
|
91
|
+
| Bad | Good |
|
|
92
|
+
|-----|------|
|
|
93
|
+
| Red text for errors | Red text + error icon + "Error:" prefix |
|
|
94
|
+
| Green for success | Green + checkmark icon + success message |
|
|
95
|
+
| Link only distinguished by colour | Link with underline + colour |
|
|
96
|
+
|
|
97
|
+
### Status Indicators
|
|
98
|
+
|
|
99
|
+
When using colour for status (red/amber/green):
|
|
100
|
+
|
|
101
|
+
1. **Add shapes** - Different shapes for each status (circle, triangle, square)
|
|
102
|
+
2. **Add labels** - Text labels alongside colours
|
|
103
|
+
3. **Include legend** - Always explain what colours mean
|
|
104
|
+
4. **Consider colour blindness** - Red/green are commonly confused
|
|
105
|
+
|
|
106
|
+
### Charts and Data Visualisation
|
|
107
|
+
|
|
108
|
+
- Use patterns or textures in addition to colours
|
|
109
|
+
- Ensure adjacent colours have sufficient contrast
|
|
110
|
+
- Provide data tables as alternatives to charts
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Typography Accessibility
|
|
115
|
+
|
|
116
|
+
### Minimum Sizes
|
|
117
|
+
|
|
118
|
+
| Context | Minimum Size |
|
|
119
|
+
|---------|--------------|
|
|
120
|
+
| Body text | 11pt (14px) |
|
|
121
|
+
| Small text (captions, labels) | 10pt (12px) - use sparingly |
|
|
122
|
+
| Touch device body | 16px recommended |
|
|
123
|
+
|
|
124
|
+
### Line Spacing
|
|
125
|
+
|
|
126
|
+
| Content Type | Line Height |
|
|
127
|
+
|--------------|-------------|
|
|
128
|
+
| Body copy | 1.5x font size |
|
|
129
|
+
| Headings | 1.2x font size |
|
|
130
|
+
| Dense UI (tables) | 1.3x minimum |
|
|
131
|
+
|
|
132
|
+
### Text Scaling
|
|
133
|
+
|
|
134
|
+
- Text must be scalable to 200% without loss of content or functionality
|
|
135
|
+
- Use relative units (rem, em) not fixed pixels for font sizes
|
|
136
|
+
- Test layouts at 200% zoom
|
|
137
|
+
|
|
138
|
+
### Typeface Selection
|
|
139
|
+
|
|
140
|
+
- Prefer sans-serif fonts for screen readability
|
|
141
|
+
- Avoid decorative fonts for body text
|
|
142
|
+
- Ensure consistent character spacing
|
|
143
|
+
|
|
144
|
+
### Text Alignment
|
|
145
|
+
|
|
146
|
+
- **Left-align** body text (default)
|
|
147
|
+
- **Avoid justified** text - uneven spacing hinders readability
|
|
148
|
+
- **Centre-align** sparingly - only for short headings or CTAs
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Motion and Animation
|
|
153
|
+
|
|
154
|
+
### Risks
|
|
155
|
+
|
|
156
|
+
- Flashing content can trigger epileptic seizures
|
|
157
|
+
- Excessive motion causes nausea/disorientation for some users
|
|
158
|
+
- Auto-playing content is distracting
|
|
159
|
+
|
|
160
|
+
### Requirements
|
|
161
|
+
|
|
162
|
+
| Requirement | Implementation |
|
|
163
|
+
|-------------|----------------|
|
|
164
|
+
| No flashing | Never use content that flashes more than 3 times per second |
|
|
165
|
+
| Pause controls | All auto-playing content must have pause/stop controls |
|
|
166
|
+
| Reduced motion | Respect user preferences for reduced motion |
|
|
167
|
+
| Duration limits | Auto-playing content longer than 5 seconds needs controls |
|
|
168
|
+
|
|
169
|
+
### GIFs and Animated Content
|
|
170
|
+
|
|
171
|
+
- Limit excessive movement
|
|
172
|
+
- Provide static fallback images where possible
|
|
173
|
+
- Never use GIFs for essential information
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Icons
|
|
178
|
+
|
|
179
|
+
### Size Requirements
|
|
180
|
+
|
|
181
|
+
| Context | Minimum Size |
|
|
182
|
+
|---------|--------------|
|
|
183
|
+
| Touch targets | 44x44px minimum tap area |
|
|
184
|
+
| Visual icon | 24x24px minimum visible size |
|
|
185
|
+
| Dense UI | 20x20px with adequate spacing |
|
|
186
|
+
|
|
187
|
+
### Accessibility Requirements
|
|
188
|
+
|
|
189
|
+
- **High contrast** - Icons must meet 3:1 contrast ratio
|
|
190
|
+
- **Universal symbols** - Use well-understood icons (magnifying glass for search)
|
|
191
|
+
- **Consistent style** - Same visual style throughout application
|
|
192
|
+
- **Text alternatives** - Provide labels or text alternatives for meaningful icons
|
|
193
|
+
- **Decorative icons** - Mark purely decorative icons appropriately
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Images
|
|
198
|
+
|
|
199
|
+
### Background Images
|
|
200
|
+
|
|
201
|
+
- **Never place text on busy backgrounds**
|
|
202
|
+
- Use colour overlays to improve contrast when text over images is necessary
|
|
203
|
+
- Test text legibility across the full image area
|
|
204
|
+
|
|
205
|
+
### Inclusive Imagery
|
|
206
|
+
|
|
207
|
+
- Represent diverse ages, backgrounds, and perspectives
|
|
208
|
+
- Prioritise diversity year-round, not just during awareness events
|
|
209
|
+
- Avoid stereotypical representations
|
|
210
|
+
|
|
211
|
+
### Decorative vs Meaningful Images
|
|
212
|
+
|
|
213
|
+
| Type | Alt Text | Example |
|
|
214
|
+
|------|----------|---------|
|
|
215
|
+
| Decorative | Empty or none | Background patterns, visual flourishes |
|
|
216
|
+
| Meaningful | Descriptive text | Photos, diagrams, charts |
|
|
217
|
+
| Functional | Describes action | Icons in buttons |
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Content Accessibility
|
|
222
|
+
|
|
223
|
+
Accessible content can be understood by everyone—including people with cognitive disabilities, non-native English speakers, and those using assistive technologies.
|
|
224
|
+
|
|
225
|
+
**Key principle:** Write content that users can understand the first time they read or hear it.
|
|
226
|
+
|
|
227
|
+
### Plain Language
|
|
228
|
+
|
|
229
|
+
| Do | Don't |
|
|
230
|
+
|----|-------|
|
|
231
|
+
| Use short sentences | Write long, complex sentences |
|
|
232
|
+
| Use active voice | Use passive voice |
|
|
233
|
+
| Use common words | Use jargon or technical terms without explanation |
|
|
234
|
+
| Be direct and specific | Be vague or ambiguous |
|
|
235
|
+
| Use concrete examples | Use abstract concepts without illustration |
|
|
236
|
+
|
|
237
|
+
### Readability Targets
|
|
238
|
+
|
|
239
|
+
- Aim for reading level that most users can understand first time
|
|
240
|
+
- Break complex concepts into digestible chunks
|
|
241
|
+
- Test with readability tools (see [Testing Tools](#testing-tools))
|
|
242
|
+
|
|
243
|
+
### Content Structure
|
|
244
|
+
|
|
245
|
+
**Headings:**
|
|
246
|
+
- Descriptive headings that accurately describe the content below
|
|
247
|
+
- Hierarchical structure - H1 → H2 → H3 (never skip levels)
|
|
248
|
+
- One H1 per page - the main page title
|
|
249
|
+
- Headings help users navigate and scan content
|
|
250
|
+
|
|
251
|
+
**Paragraphs:**
|
|
252
|
+
- Keep paragraphs short - 3-4 sentences maximum
|
|
253
|
+
- One idea per paragraph
|
|
254
|
+
- Avoid walls of text - dense blocks are hard to read
|
|
255
|
+
|
|
256
|
+
**Lists:**
|
|
257
|
+
- Use bullet points for unordered items
|
|
258
|
+
- Use numbered lists for sequential steps
|
|
259
|
+
- Keep list items concise
|
|
260
|
+
|
|
261
|
+
**Reading Order:**
|
|
262
|
+
- Content should make sense when read linearly
|
|
263
|
+
- Don't rely on visual layout to convey meaning
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Alternative Text
|
|
268
|
+
|
|
269
|
+
### When Alt Text is Required
|
|
270
|
+
|
|
271
|
+
| Image Type | Alt Text Required | Approach |
|
|
272
|
+
|------------|-------------------|----------|
|
|
273
|
+
| Informative images | Yes | Describe content and purpose |
|
|
274
|
+
| Decorative images | No | Mark as decorative |
|
|
275
|
+
| Functional images (buttons, links) | Yes | Describe the action |
|
|
276
|
+
| Charts and diagrams | Yes | Summarize data, link to full data |
|
|
277
|
+
| Images with text | Yes | Include all text from image |
|
|
278
|
+
|
|
279
|
+
### Writing Good Alt Text
|
|
280
|
+
|
|
281
|
+
| Do | Don't |
|
|
282
|
+
|----|-------|
|
|
283
|
+
| Describe content and purpose | Start with "Image of..." or "Picture of..." |
|
|
284
|
+
| Be concise (under 125 characters) | Write lengthy descriptions |
|
|
285
|
+
| Include text that appears in image | Describe visual appearance only |
|
|
286
|
+
| Provide context for charts | Just say "Chart" or "Graph" |
|
|
287
|
+
|
|
288
|
+
### Examples
|
|
289
|
+
|
|
290
|
+
| Context | Bad Alt Text | Good Alt Text |
|
|
291
|
+
|---------|--------------|---------------|
|
|
292
|
+
| Company logo | "Logo" | "Equal Experts" |
|
|
293
|
+
| Chart | "Bar chart" | "Monthly sales chart showing 40% growth in Q4" |
|
|
294
|
+
| Product photo | "Image of laptop" | "MacBook Pro with dashboard displayed" |
|
|
295
|
+
| Icon button | "Icon" | "Search" |
|
|
296
|
+
|
|
297
|
+
### Complex Images
|
|
298
|
+
|
|
299
|
+
For complex diagrams or charts:
|
|
300
|
+
|
|
301
|
+
1. Provide brief alt text summarizing the image
|
|
302
|
+
2. Include detailed description in surrounding text or linked page
|
|
303
|
+
3. For data charts, provide accessible data table alternative
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Links and Buttons
|
|
308
|
+
|
|
309
|
+
### Link Text
|
|
310
|
+
|
|
311
|
+
Links should tell users where they're going and why.
|
|
312
|
+
|
|
313
|
+
| Bad | Good |
|
|
314
|
+
|-----|------|
|
|
315
|
+
| "Click here" | "View our pricing plans" |
|
|
316
|
+
| "Read more" | "Read more about accessibility guidelines" |
|
|
317
|
+
| "Learn more" | "Learn more about our consulting services" |
|
|
318
|
+
| URL as link text | Descriptive text for the destination |
|
|
319
|
+
|
|
320
|
+
### Link Visibility
|
|
321
|
+
|
|
322
|
+
- Links must be visually distinct from regular text
|
|
323
|
+
- Use **underline** plus colour change
|
|
324
|
+
- Don't rely on colour alone
|
|
325
|
+
|
|
326
|
+
### Button Labels
|
|
327
|
+
|
|
328
|
+
- Describe the action clearly
|
|
329
|
+
- Use verbs: "Submit", "Save", "Delete", "Cancel"
|
|
330
|
+
- Be specific: "Save changes" not just "Save"
|
|
331
|
+
- Match user expectation to actual outcome
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Abbreviations and Acronyms
|
|
336
|
+
|
|
337
|
+
### First Use
|
|
338
|
+
|
|
339
|
+
Always spell out abbreviations on first use:
|
|
340
|
+
|
|
341
|
+
- "Artificial Intelligence (AI)" - then use "AI" thereafter
|
|
342
|
+
- "Application Programming Interface (API)"
|
|
343
|
+
- "User Experience (UX)"
|
|
344
|
+
|
|
345
|
+
### Screen Reader Considerations
|
|
346
|
+
|
|
347
|
+
- Use capitals for abbreviations: `HMRC` not `Hmrc`
|
|
348
|
+
- Screen readers may mispronounce lowercase abbreviations as words
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## Text Formatting
|
|
353
|
+
|
|
354
|
+
### Capitalisation
|
|
355
|
+
|
|
356
|
+
| Do | Don't |
|
|
357
|
+
|----|-------|
|
|
358
|
+
| Use sentence case | USE ALL CAPS FOR EMPHASIS |
|
|
359
|
+
| Capitalise proper nouns | use alternating caps (LiKe ThIs) |
|
|
360
|
+
| Use bold for emphasis | Rely on caps for emphasis |
|
|
361
|
+
|
|
362
|
+
**Why:** Screen readers cannot convey the context of ALL CAPS. Alternating caps is read as gibberish.
|
|
363
|
+
|
|
364
|
+
### Semantic Formatting
|
|
365
|
+
|
|
366
|
+
- Use appropriate markup for important text, not just bold styling
|
|
367
|
+
- Use appropriate markup for emphasis, not just italic styling
|
|
368
|
+
- Use semantic lists, not manual bullet characters
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## Inclusive Language
|
|
373
|
+
|
|
374
|
+
### Guidelines
|
|
375
|
+
|
|
376
|
+
- Use language that is respectful and free of bias
|
|
377
|
+
- Avoid exclusionary terms or outdated phrases
|
|
378
|
+
- Consider diverse audiences and perspectives
|
|
379
|
+
- When in doubt, research current preferred terminology
|
|
380
|
+
|
|
381
|
+
### Person-First Language
|
|
382
|
+
|
|
383
|
+
- "Person with a disability" not "disabled person"
|
|
384
|
+
- "User who is blind" not "blind user"
|
|
385
|
+
- Focus on the person, not the condition
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## Multimedia Content
|
|
390
|
+
|
|
391
|
+
### Video
|
|
392
|
+
|
|
393
|
+
- **Captions required** - Essential for deaf/hard-of-hearing users
|
|
394
|
+
- 85% of social media videos are watched without sound
|
|
395
|
+
- Captions can be burned-in or added via platform tools
|
|
396
|
+
|
|
397
|
+
### Audio
|
|
398
|
+
|
|
399
|
+
- **Transcripts required** - Full text alternative for audio content
|
|
400
|
+
- Helps users who can't listen (noisy environment, preference)
|
|
401
|
+
- Benefits SEO and searchability
|
|
402
|
+
|
|
403
|
+
### Auto-Playing Content
|
|
404
|
+
|
|
405
|
+
- Provide pause/stop controls
|
|
406
|
+
- Never auto-play audio without user consent
|
|
407
|
+
- Limit duration of auto-playing visual content
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
## Testing Tools
|
|
412
|
+
|
|
413
|
+
### Colour Contrast
|
|
414
|
+
|
|
415
|
+
- [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/) - Text contrast
|
|
416
|
+
- [Contrast Checker](https://contrastchecker.com/) - Images
|
|
417
|
+
- [Brandwood A11y](https://www.brandwood.com/a11y/) - Text over images
|
|
418
|
+
|
|
419
|
+
### Automated Testing
|
|
420
|
+
|
|
421
|
+
- [WAVE Browser Extension](https://wave.webaim.org/extension/) - Page accessibility evaluation
|
|
422
|
+
- [Axe DevTools](https://www.deque.com/axe/devtools/) - Comprehensive accessibility testing
|
|
423
|
+
|
|
424
|
+
### Content Readability
|
|
425
|
+
|
|
426
|
+
- [WebFX Readability Test](https://www.webfx.com/tools/read-able/)
|
|
427
|
+
- [Hemingway Editor](https://hemingwayapp.com/)
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
## Further Reading
|
|
432
|
+
|
|
433
|
+
- [Introduction to Web Accessibility (W3C)](https://www.w3.org/WAI/fundamentals/accessibility-intro/)
|
|
434
|
+
- [WCAG 2.2 Guidelines](https://www.w3.org/TR/WCAG22/)
|
|
435
|
+
- [UK Government Accessibility Guidelines](https://gcs.civilservice.gov.uk/guidance/digital-communication/planning-creating-and-publishing-accessible-website-content/)
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## Related Documentation
|
|
440
|
+
|
|
441
|
+
- [Colours](./design/colours.md) - Brand colour palette and contrast
|
|
442
|
+
- [Typography](./design/typography.md) - Font families and type scale
|
|
443
|
+
- [Content](./content/README.md) - Writing style and tone
|
|
444
|
+
- [Web Technical Accessibility](../types/web/product/accessibility.md) - Implementation details
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Equal Experts Brand
|
|
2
|
+
|
|
3
|
+
Core brand principles and identity guidelines for Equal Experts.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Brand Identity
|
|
8
|
+
|
|
9
|
+
Equal Experts is a network of experienced software consultants, helping organisations deliver better digital products and services.
|
|
10
|
+
|
|
11
|
+
**Key Brand Attributes:**
|
|
12
|
+
- **Expert** - Deep technical expertise and experience
|
|
13
|
+
- **Equal** - Collaborative, flat structure, no hierarchies
|
|
14
|
+
- **Honest** - Direct, transparent communication
|
|
15
|
+
- **Pragmatic** - Practical solutions over theoretical perfection
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Brand Values
|
|
20
|
+
|
|
21
|
+
### 1. Expertise Through Experience
|
|
22
|
+
|
|
23
|
+
We hire only experienced consultants. Our expertise comes from years of hands-on work, not certifications or titles.
|
|
24
|
+
|
|
25
|
+
### 2. Equality and Collaboration
|
|
26
|
+
|
|
27
|
+
Everyone is equal. We work alongside clients as partners, not vendors. No account managers, no hierarchy - just experts working together.
|
|
28
|
+
|
|
29
|
+
### 3. Honesty and Transparency
|
|
30
|
+
|
|
31
|
+
We tell clients what they need to hear, not what they want to hear. We're direct about risks, challenges, and realistic outcomes.
|
|
32
|
+
|
|
33
|
+
### 4. Pragmatism Over Perfection
|
|
34
|
+
|
|
35
|
+
We focus on delivering value, not following processes for their own sake. We choose practical solutions that work in the real world.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Brand Voice
|
|
40
|
+
|
|
41
|
+
### Tone Characteristics
|
|
42
|
+
|
|
43
|
+
| Characteristic | Description |
|
|
44
|
+
|----------------|-------------|
|
|
45
|
+
| Confident | We know our craft and speak with authority |
|
|
46
|
+
| Humble | We acknowledge what we don't know |
|
|
47
|
+
| Direct | We get to the point without jargon |
|
|
48
|
+
| Helpful | We focus on enabling others to succeed |
|
|
49
|
+
| Pragmatic | We favour practical over theoretical |
|
|
50
|
+
|
|
51
|
+
### Voice Do's
|
|
52
|
+
|
|
53
|
+
- Be clear and direct
|
|
54
|
+
- Use plain language
|
|
55
|
+
- Show expertise through clarity, not complexity
|
|
56
|
+
- Acknowledge uncertainty when appropriate
|
|
57
|
+
- Focus on outcomes and value
|
|
58
|
+
|
|
59
|
+
### Voice Don'ts
|
|
60
|
+
|
|
61
|
+
- Don't use buzzwords without substance
|
|
62
|
+
- Don't overclaim or overpromise
|
|
63
|
+
- Don't hide behind jargon
|
|
64
|
+
- Don't be condescending
|
|
65
|
+
- Don't use corporate speak
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Brand Positioning
|
|
70
|
+
|
|
71
|
+
**What we are:**
|
|
72
|
+
- A network of experienced software consultants
|
|
73
|
+
- Partners who work alongside client teams
|
|
74
|
+
- Experts who deliver, not just advise
|
|
75
|
+
|
|
76
|
+
**What we're not:**
|
|
77
|
+
- A traditional consultancy with hierarchies
|
|
78
|
+
- A body shop providing resources
|
|
79
|
+
- Theorists who don't get hands dirty
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Brand Consistency
|
|
84
|
+
|
|
85
|
+
When representing Equal Experts:
|
|
86
|
+
|
|
87
|
+
1. **Use official brand assets** - Logo, colors, typography from brand guidelines
|
|
88
|
+
2. **Maintain voice consistency** - Apply brand voice across all touchpoints
|
|
89
|
+
3. **Respect the brand** - Don't modify, distort, or misrepresent
|
|
90
|
+
4. **Be authentic** - Represent the real Equal Experts culture
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Related Documentation
|
|
95
|
+
|
|
96
|
+
- [Logo Usage](./logo.md) - Logo variants, sizing, placement
|
|
97
|
+
- [Colours](./design/colours.md) - Brand color palette
|
|
98
|
+
- [Typography](./design/typography.md) - Brand fonts
|
|
99
|
+
- [Content](./content/README.md) - Writing style and tone
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Content Rules
|
|
2
|
+
|
|
3
|
+
Writing style, voice, tone, and usage for Equal Experts. Apply to all content before platform-specific guidance.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
These rules cover how we write: voice and tone, style principles, formatting, numbers, and punctuation. Load [voice-and-tone.md](./voice-and-tone.md) first; use the others as needed for the task.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Files
|
|
14
|
+
|
|
15
|
+
| File | Description |
|
|
16
|
+
|------|-------------|
|
|
17
|
+
| [voice-and-tone.md](./voice-and-tone.md) | Voice, tone, audience, quality checklist, AI content |
|
|
18
|
+
| [writing-style.md](./writing-style.md) | Active voice, plain language, contractions, conciseness |
|
|
19
|
+
| [formatting.md](./formatting.md) | Capitalisation, bold/italic, headings, links, lists, acronyms |
|
|
20
|
+
| [numbers.md](./numbers.md) | Dates, times, currency, percentages, units |
|
|
21
|
+
| [punctuation.md](./punctuation.md) | Commas, dashes, apostrophes, quotation marks |
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Related
|
|
26
|
+
|
|
27
|
+
- [Foundations](../README.md) – Brand, logo, accessibility
|
|
28
|
+
- [Design](../design/README.md) – Visual design and tokens
|
package/agent-docs/external/kuat-agent-rules/kuat-docs/rules/foundations/content/formatting.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Formatting
|
|
2
|
+
|
|
3
|
+
How to use bold, capitalisation, headings, links, lists, and abbreviations in Equal Experts content.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Quick Reference
|
|
8
|
+
|
|
9
|
+
- **Capitalisation:** Sentence case for headings, buttons, and body copy; title case only for proper nouns and product names
|
|
10
|
+
- **Bold:** Use sparingly for emphasis or key terms
|
|
11
|
+
- **Links:** Descriptive link text, not "click here" or raw URLs
|
|
12
|
+
- **Lists:** Use when items are parallel; keep items concise
|
|
13
|
+
- **Acronyms:** Spell out on first use, then use the short form
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Capitalisation
|
|
18
|
+
|
|
19
|
+
### Sentence case
|
|
20
|
+
|
|
21
|
+
Use sentence case for:
|
|
22
|
+
- Headings and subheadings
|
|
23
|
+
- Button and link labels
|
|
24
|
+
- List items
|
|
25
|
+
- Body copy
|
|
26
|
+
|
|
27
|
+
**Examples:**
|
|
28
|
+
"Getting started"
|
|
29
|
+
"Save and continue"
|
|
30
|
+
"Contact the team"
|
|
31
|
+
|
|
32
|
+
### Title case
|
|
33
|
+
|
|
34
|
+
Reserve for:
|
|
35
|
+
- Proper nouns (Equal Experts, product names)
|
|
36
|
+
- Official titles when they are the full name of something
|
|
37
|
+
|
|
38
|
+
Do not use title case for general headings or UI labels.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Bold and Italic
|
|
43
|
+
|
|
44
|
+
- **Bold:** Use for a small number of key terms or one-off emphasis. Don't bold whole sentences or paragraphs.
|
|
45
|
+
- *Italic:* Use for titles of works, technical terms on first use if needed, or subtle emphasis. Use sparingly in UI copy.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Headings
|
|
50
|
+
|
|
51
|
+
- One H1 per page or screen (the main title)
|
|
52
|
+
- Use a logical hierarchy: H1 → H2 → H3; don't skip levels
|
|
53
|
+
- Make headings descriptive so they work as a scan of the content
|
|
54
|
+
- Prefer sentence case
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Links
|
|
59
|
+
|
|
60
|
+
- Link text should describe the destination or action
|
|
61
|
+
- Avoid "click here", "read more", "learn more" without context
|
|
62
|
+
|
|
63
|
+
| Prefer | Avoid |
|
|
64
|
+
|--------|--------|
|
|
65
|
+
| Read the accessibility guidelines | Click here for guidelines |
|
|
66
|
+
| Pricing plans | Learn more |
|
|
67
|
+
| Contact the team | https://example.com/contact |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Lists
|
|
72
|
+
|
|
73
|
+
- Use bullet lists for unordered items
|
|
74
|
+
- Use numbered lists for steps or ranked items
|
|
75
|
+
- Keep list items parallel in structure
|
|
76
|
+
- Start with a lead-in sentence if it helps; don't repeat the same lead-in word in every item when not needed
|
|
77
|
+
- Prefer sentence case and consistent punctuation (full stops only if items are full sentences)
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Abbreviations and Acronyms
|
|
82
|
+
|
|
83
|
+
- Spell out on first use with the short form in parentheses: "Application Programming Interface (API)"
|
|
84
|
+
- Use the short form consistently after that
|
|
85
|
+
- For well-known terms in your audience (e.g. API, UX), first-use expansion is still helpful in public-facing or mixed-audience content
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Related Documentation
|
|
90
|
+
|
|
91
|
+
- [Voice and tone](./voice-and-tone.md)
|
|
92
|
+
- [Writing style](./writing-style.md)
|
|
93
|
+
- [Numbers](./numbers.md) - Dates, currency, units
|