Chapters as Keyboard Navigation for Long Video
Treat chapter lists as a keyboard skip map. Write titles that match the transcript, keep every marker reachable, and skip chapters on a 90-second spot.
A chapter list that only a mouse can hit is a table of contents for people who already have one. Keyboard and switch users skip long video the same way they skip a long page: they need a real, focusable list of destinations whose labels match what they will hear when they land. Search-engine timestamps that do not survive Tab, and title cards burned into the picture that do not sit in the accessibility tree, fail that job even when they look finished on a scrubber.
This is not a retention article. Retention drops at chapter seams have their own diagnosis in fixing step-downs at chapter boundaries. The job here is whether a viewer who cannot drag a playhead can still move by topic.
What a chapter actually has to be
WebVTT is specified as captions, subtitles, text video descriptions, and chapters for content navigation. The HTML <track> element exposes that with kind="chapters". That is a different object from a lower-third that says "Part 2" at 04:12. One is a named cue a player can put in a list. The other is pixels.
WCAG 2.2 Success Criterion 2.1.1 Keyboard (Level A) requires that all functionality of the content is operable through a keyboard interface, without specific timings for individual keystrokes. If your chapter picker is a hover-only tooltip on a progress bar, or a custom overlay that only listens for click, the chapters exist for pointer users and not for anyone else. SC 2.4.4 Link Purpose and SC 2.4.6 Headings and Labels then require those destinations to be named for the topic they actually open, not for a click-through phrase.
Do not map this to SC 2.4.1 Bypass Blocks. That criterion is about repeated page chrome (nav, ads, cookie banners), not about seeking inside a media resource. Chapters are the media analogue of a skip map, but claiming 2.4.1 for a VTT file is a misread of the standard.
A usable chapter, then, is three properties at once:
- A start time the player can seek to.
- A label that describes the section in the same language the soundtrack uses.
- A control a keyboard user can focus, activate, and leave.
If any one of those is missing, you have decoration.
Write titles from the transcript, not from the thumbnail
The failure that looks like a win in Studio is a chapter titled "The part nobody talks about" over a stretch where the speaker says "here is how the invoice export actually runs." A screen reader user opens the chapter menu, hears the marketing line, jumps, and lands in a sentence that does not contain those words. They have to hunt. The chapter did the opposite of navigation.
Pull the titles from a real transcript. Get a video transcript runs speech-to-text against the audio and returns editable text, which is the right source for labels. The agent path is the same job: transcribe audio to text. You are not asking the model to invent chapter copy. You are asking it for the words that were spoken, then cutting those words down to a label.
Rules that hold up:
- Reuse a spoken noun phrase. If the speaker says "three failure modes in the handoff," the chapter is "Three failure modes in the handoff," not "Watch this before you ship."
- One topic per marker. If you cannot point at a sentence in the transcript that the title names, the title is a pitch, not a heading.
- Match speaker names and product names exactly. Caption QC already treats proper nouns as high-cost errors. Chapter labels that rename them create a second, quieter error for anyone jumping by list.
- Do not number blindly. "Part 3" tells a keyboard user nothing until they open it. "Part 3: Replacing the audio" does.
YouTube's own chapter feature is a description-timestamp list, not a WebVTT file. YouTube Help requires at least three timestamps, in ascending order, with the first at 00:00, and a minimum chapter length of 10 seconds. Those constraints are about the platform recognising the list. They are not permission to write clickbait labels. YouTube notes that chapters may also appear in the transcripts, which is another reason the title has to be true: the same string can show up next to the words.
Keep the list keyboard reachable
On youtube.com the player documents its own keyboard map: k play/pause, j/l skip ten seconds, arrow keys skip five, 0–9 jump by decile, m mute, f fullscreen. That map is in the IFrame player parameter documentation. It is also easy to disable: disablekb=1 turns those keys off. An embed that strips keyboard control and then "has chapters" in the description has failed the people chapters were supposed to help.
Treat each destination as a control you have to test, not a feature the host promises.
| Surface | What to ship | Keyboard check |
|---|---|---|
| YouTube watch page | Description timestamps meeting the 00:00 / three / 10-second rules | Tab to the chapter control, activate two non-adjacent chapters, confirm the playhead and the spoken words match the label |
| YouTube iframe embed | Same timestamps on the source video; do not set disablekb=1 |
Repeat the chapter jump from the embed. If the chapter menu is missing in the iframe, add an on-page list of same-origin links that call seekTo through the IFrame API |
HTML5 <video controls> |
A WebVTT file on <track kind="chapters"> |
Native chapter UI varies by browser. Do not rely on it. Put an ordered list of buttons next to the player, each seeking to video.currentTime |
| Custom / marketing player | Same VTT or an explicit list in the DOM | Focus ring visible (SC 2.4.7), Enter/Space activate, no hover-only disclosure |
The on-page list is the reliable pattern for a site embed. Each item is a button or a link with the chapter title as its accessible name. Activating it sets the media time and moves focus back to the player so the user is not dumped into the next widget. Painted ticks on a canvas scrubber never appear in that list, which is why they do not count.
Seeking by 10 percent with 1 through 9 is not a substitute for chapters. Decile jumps land in the middle of sentences. Chapters land at topics. You want both: coarse keyboard seek for nearby correction, named markers for structure.
When a 90-second spot needs none
YouTube's minimums mean a 90-second file can carry three chapters (0:00, 0:30, 1:00 is legal). That does not mean it should.
A 90-second spot is usually one job: one claim, one demo, one ask. Inventing three labels for one thought adds a menu a keyboard user has to tab through in order to ignore it. The existing skip keys already move 5 and 10 seconds. On a clip that short, that is enough.
Skip chapters when all of these are true:
- The runtime is under about two minutes and the soundtrack does not change topic.
- There is no section a viewer would reasonably want as a cold start (a pricing table, a legal disclaimer, a worked example).
- The "chapters" you would write are beats of the same sentence: Hook, Problem, CTA.
Keep chapters when the 90 seconds are actually three different jobs spliced together, for example a 20-second product shot, a 40-second how-to, and a 30-second Q&A. Then the titles should say those jobs, in transcript language, and the markers still have to be focusable. Runtime alone is not the test. Number of topics is.
Long-form is the other side of the same rule. An 8–15 minute video that never names a minute's job is the retention problem described in giving every minute of a long video a job. Once those jobs exist on the block sheet, they are the chapter list. Do not write a second, more marketable set of titles for the description.
A working pass on a long cut
- Transcribe first. Use speech-to-text on the finished mix, not on a scratch VO. Chapter labels have to match what shipped.
- Mark topic starts on the transcript, not on a retention graph. A new chapter starts where the speaker starts a new job, not where the music stings.
- Enforce the host's numeric rules if YouTube is a destination:
00:00, at least three timestamps, each at least 10 seconds. If you cannot find three real topics, do not pad. - Ship the list in two places for a site embed: the WebVTT
kind="chapters"track and an HTML list of seek buttons. Players drop tracks. DOM lists do not. - Keyboard QA. Unplug the mouse. Tab to the first chapter, activate the last, activate one in the middle. If you cannot do that, the chapters are not navigation. Catch the same pass when you check a video before you publish.
Automatic chapters on YouTube are a separate switch. Help documentation says they can be allowed or opted out per video, that not every video gets them, and that they are unavailable when the channel has an active strike or the content may be inappropriate to some viewers. Do not treat auto-chapters as an accessibility delivery. They are a guess at topics, and guesses do not satisfy 2.4.6.
FAQ
Do burned-in title cards count as chapters?
No. A title card is part of the picture. It is not in the accessibility tree, it cannot receive focus, and a keyboard user cannot activate it to seek. Keep the card if it helps sighted viewers. Still ship a real list.
Is a description timestamp list enough for an iframe embed?
It is enough for YouTube's own watch page to draw chapter markers, provided the 00:00 / three / 10-second rules are met. An iframe does not guarantee the same chapter menu. If the embed is the way most of your audience watches, put the same titles in focusable controls on the host page.
Should chapter titles be shorter than caption lines?
Usually, yes. A chapter is a heading, not a subtitle. One clause, transcript-faithful, no trailing ellipsis. If the title needs a comma to be true, the section is probably two chapters.
What if the speaker never names the section?
Write the shortest label that a person jumping in would need to know they are in the right place, using words that do appear nearby in the transcript. If no such words exist, the section does not have a job, and it should not have a marker. Cut it or rewrite the VO until the job is speakable.