Agent Readiness Report · https://boltline.agentglass.dev · AgentGlass
Agent Readiness Report

https://boltline.agentglass.dev

C
60 / 100 → 85 (+25)
gemini Agents run
4 Findings kept
29.6s Total wall
yes Stage 2 enabled

Per-agent runs

AgentModelStatusWallStepsTokens
gemini-baseline gemini-2.5-flash complete 25.4s 8 3542 / 288

Per-agent wall clock

gemini-baseline
25.45s
Total scan
29.57s

parallel saved -16.0% — sum 25.4s vs total 29.6s

Findings (4)

Booking CTA missing aria-label
critical
f1 · gemini-baseline · labeling · .cta-book-demo
Add explicit aria-label so agents can match intent without relying on inner text + class semantics.
Calendar slot picker is keyboard-only after first tab
high
f2 · gemini-baseline · keyboard-trap · .slots
Promote to focusable group with role=radiogroup + aria-label.
Modal dismiss requires Esc — no close button
medium
f10 · gemini-baseline · missing-affordance · .modal[role='dialog']
Add a visible close button; agents don't reliably send Esc.
Page lacks a <main> landmark element to semantically define the primary content area.
high
gemini-0 · gemini-baseline · non-semantic · body
Wrap the primary content section, such as the '.hero' area, in a <main> HTML element.

Suggested patches (4)

f1 VERIFIED · by gpt-5.5 · Δ +15
.cta-book-demo
Add an explicit aria-label to the free trial button for reliable agent targeting. (Booking CTA missing aria-label)
@@
-<button class="btn-primary" onclick="openCalendar()">Start free trial</button>
+<button class="btn-primary" onclick="openCalendar()" aria-label="Start free trial">Start free trial</button>
gemini-0 VERIFIER_UNCONFIDENT · by gpt-5.5 · Δ 0
body
Wrap primary content in a semantic main landmark. (Page lacks a <main> landmark element to semantically define the primary content area.)
@@
-<element/>
+<main>
+  <element/>
+</main>
f2 VERIFIED · by gpt-5.5 · Δ +10
.slots
Make the time slots container focusable and identify it as a labeled radiogroup. (Calendar slot picker is keyboard-only after first tab)
@@
-<div class="slots" tabindex="-1">
+<div class="slots" tabindex="0" role="radiogroup" aria-label="Available appointment times">
   <div class="slot" data-slot="9am" onclick="selectSlot(this)">9:00 AM</div>
   <div class="slot" data-slot="10am" onclick="selectSlot(this)">10:00 AM</div>
f10 VERIFIER_UNCONFIDENT · by gpt-5.5 · Δ 0
.modal[role='dialog']
Add a visible, labeled close button and label the dialog heading for agents. (Modal dismiss requires Esc — no close button)
@@
-      <div class="modal" id="modal" role="dialog">
+      <div class="modal" id="modal" role="dialog" aria-labelledby="booking-confirmation-title">
         <div class="modal-content">
-          <h2>You're booked!</h2>
+          <button type="button" class="modal-close" aria-label="Close booking confirmation dialog">Close</button>
+          <h2 id="booking-confirmation-title">You're booked!</h2>
           <p>Confirmation email sent. Press <kbd>Esc</kbd> to close.</p>
         </div>
       </div>