Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
Commit63c60ebunknown_key

fix: add aria-labels to inputs and fix heading hierarchy

fix: add aria-labels to inputs and fix heading hierarchy

- Add aria-label to project title, new card title, new column name, and delete item button in projects.tsx
- Fix h4 → h2 for Kanban column headers in projects.tsx
- Add aria-label to tag protection pattern input in protected-tags.tsx
- Add aria-label to pull request title input in pulls.tsx
- Add aria-labels to tag, release name, target branch, and previous tag fields in releases.tsx
- Add aria-labels to visibility radio buttons and new owner input in repo-settings.tsx
- Add aria-label to check name input in required-checks.tsx

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: ccantynz-alt <251062557+ccantynz-alt@users.noreply.github.com>
copilot-swe-agent[bot] committed on April 22, 2026Parent: 5db1b25
6 files changed+16563c60ebc0e839111fe1f42d826c6bd9d99acf104
6 changed files+16−5
Modifiedsrc/routes/projects.tsx+6−2View fileUnifiedSplit
159159 name="title"
160160 placeholder="Title"
161161 required
162 aria-label="Project title"
162163 style="padding: 8px;"
163164 />
164165 <textarea
309310 <div class="kanban">
310311 {columns.map((col) => (
311312 <div class="kcol">
312 <h4>
313 <h2>
313314 <span>{col.name}</span>
314315 <span style="color: var(--text-muted); font-size: 13px;">
315316 {(itemsByCol[col.id] || []).length}
316317 </span>
317 </h4>
318 </h2>
318319 {(itemsByCol[col.id] || []).map((it) => (
319320 <div class="kcard">
320321 <div>
355356 <button
356357 type="submit"
357358 class="btn"
359 aria-label="Delete item"
358360 style="font-size: 11px; padding: 2px 6px;"
359361 >
360362 ×
376378 name="title"
377379 placeholder="New card title"
378380 required
381 aria-label="New card title"
379382 style="padding: 4px; font-size: 12px;"
380383 />
381384 <button
401404 name="name"
402405 placeholder="New column"
403406 required
407 aria-label="New column name"
404408 style="padding: 6px;"
405409 />
406410 <button type="submit" class="btn">
Modifiedsrc/routes/protected-tags.tsx+1−0View fileUnifiedSplit
134134 name="pattern"
135135 required
136136 placeholder="v* or release-*"
137 aria-label="Tag protection pattern"
137138 style="font-family:var(--font-mono)"
138139 />
139140 </div>
Modifiedsrc/routes/pulls.tsx+1−0View fileUnifiedSplit
248248 required
249249 placeholder="Title"
250250 style="font-size:16px;padding:10px 14px"
251 aria-label="Pull request title"
251252 />
252253 </FormGroup>
253254 <FormGroup>
Modifiedsrc/routes/releases.tsx+4−3View fileUnifiedSplit
221221 required
222222 placeholder="v1.0.0"
223223 pattern="[A-Za-z0-9._\\-]+"
224 aria-label="Tag"
224225 />
225226 </div>
226227 <div class="form-group">
227228 <label>Target branch / commit</label>
228 <select name="target">
229 <select name="target" aria-label="Target branch">
229230 {branches.map((b) => (
230231 <option value={b} selected={b === repoRow.defaultBranch}>
231232 {b}
235236 </div>
236237 <div class="form-group">
237238 <label>Release name</label>
238 <input type="text" name="name" required placeholder="v1.0.0 — the big one" />
239 <input type="text" name="name" required placeholder="v1.0.0 — the big one" aria-label="Release name" />
239240 </div>
240241 <div class="form-group">
241242 <label>Previous tag (for AI changelog)</label>
242 <select name="previousTag">
243 <select name="previousTag" aria-label="Previous tag">
243244 <option value="">(auto — last tag)</option>
244245 {tags.map((t) => (
245246 <option value={t.name}>{t.name}</option>
Modifiedsrc/routes/repo-settings.tsx+3−0View fileUnifiedSplit
117117 name="visibility"
118118 value="public"
119119 checked={!repo.isPrivate}
120 aria-label="Public"
120121 />
121122 <div class="vis-label">Public</div>
122123 </label>
126127 name="visibility"
127128 value="private"
128129 checked={repo.isPrivate}
130 aria-label="Private"
129131 />
130132 <div class="vis-label">Private</div>
131133 </label>
197199 name="new_owner"
198200 placeholder="new-owner-username"
199201 required
202 aria-label="New owner username"
200203 style="width:60%"
201204 />{" "}
202205 <button type="submit" class="btn">
Modifiedsrc/routes/required-checks.tsx+1−0View fileUnifiedSplit
161161 name="checkName"
162162 required
163163 placeholder="GateTest"
164 aria-label="Check name"
164165 style="font-family:var(--font-mono)"
165166 />
166167 </div>
167168