Exercise 1: Accessibility Label/Hint on the Icon-Only Add Button, and Why It's Needed — Possible Solution ================================================================================================================== Button { isShowingNewTask = true } label: { Image(systemName: "plus.circle.fill") } .accessibilityLabel("Add Task") .accessibilityHint("Opens a form to create a new task") WHY AN ICON-ONLY BUTTON GENUINELY NEEDS A LABEL: VoiceOver announces content by reading whatever real, meaningful information it can find attached to an element. A Text("Add") button already carries real, literal text content - "Add" - that VoiceOver can read directly, with nothing further needed. An Image(systemName: "plus.circle.fill") button, by contrast, has no real text content at all - only a visual icon, which is meaningless to VoiceOver on its own since it has no inherent, real spoken description built into it (the underlying SF Symbol name, "plus.circle.fill," is an internal identifier, not something ever announced to a user). Without an explicit .accessibilityLabel(), a VoiceOver user navigating to this button would hear either nothing useful at all, or at best a generic, unhelpful description like "Button" - giving them no real way to know what tapping it would actually do. The real .accessibilityLabel("Add Task") supplies exactly the missing spoken description a Text-based button would have provided automatically on its own, and .accessibilityHint() adds a real, optional extra layer - what happens next - genuinely useful here since "Add Task" alone doesn't make clear that a whole new form appears. ANSWER: A Text("Add") button already has real, literal text content VoiceOver reads automatically. An icon-only button has no text content at all, so without an explicit .accessibilityLabel(), VoiceOver has nothing meaningful to announce - the label supplies the missing spoken description a text-based button gets for free, and the hint adds optional context about what activating the button actually does. WHY THIS WORKS AS AN ANSWER ------------------------------ This correctly adds the real accessibility modifiers and explains the underlying reason (no real text content for VoiceOver to read) that makes them necessary specifically for icon-only controls.