Listen to Episode 24: GitHub Discussions - a conversational audio overview of this chapter. Listen before reading to preview the concepts, or after to reinforce what you learned.
GitHub Discussions is a built-in community forum for repositories and organizations. It's where open-ended conversations live - questions, ideas, announcements, polls, and community Q&A - separate from the action-oriented world of issues and pull requests.
- Discussions vs. Issues: When to Use Which
- Navigating to Discussions
- Discussion Categories
- Creating a Discussion
- Participating in Discussions
- Marking an Answer
- Polls
- Screen Reader Navigation Reference
- Organization-Level Discussions
- Accessibility Agents: What's Different Here
Not every conversation belongs in an issue. GitHub Discussions exists for the conversations that don't fit:
| Use Issues When | Use Discussions When |
|---|---|
| You found a bug | You have a question about how something works |
| You want to request a specific feature | You want to brainstorm ideas before filing a feature request |
| There is actionable work to be done | You want community input before deciding what work to do |
| You need to track progress (labels, assign, close) | You want to have an open conversation without resolving it |
| The answer is "fixed" or "won't fix" | The conversation might not have one right answer |
The signal for maintainers: A question in an issue is noisier - it implies something needs to be done. The same question in Discussions doesn't trigger workflow automation and doesn't inflate the issue count.
- Q&A - Support questions and answers (one answer can be marked correct)
- Ideas - Feature brainstorming before a formal feature request
- Announcements - Maintainer posts about releases, breaking changes, roadmaps
- General - Everything else
- Show and Tell - Community members showing what they built
- Navigate to the repository
- There is a Discussions tab in the main navigation (alongside Code, Issues, Pull Requests, Actions, Projects)
- Press
Tto navigate tab items, orKto navigate links and find "Discussions" - Press
Enterto open
If the tab is missing: Discussions is an opt-in feature. The repository maintainer must enable it in Settings. Not all repositories use it.
Large organizations can have organization-level Discussions separate from any individual repository:
- Navigate to the organization page
- Look for the Discussions tab at the organization level
- These are community-wide conversations, not repo-specific
The Discussions home page is organized by category. Each category is a section with its own heading.
3 → Jump to category headings
K → Navigate discussion titles within a category
Enter → Open a discussion
- All categories with item counts
- Pin/announcements section at top
- Most active discussions
- Tags (if the repo uses them)
- From the Discussions tab, activate "New discussion" button
- Select a category (required - affects which fields appear)
- Fill in:
- Title - Clear and searchable. "How do I use the daily-briefing agent?" not "Help"
- Body - Use Markdown. Same editor as issues
- For Q&A category: phrase the title as a question
- Activate "Start discussion"
Tab to "New discussion" button → Enter
→ Category list: ↑/↓ to select category → Enter
→ Title field: type title
→ Tab to body: Focus Mode → type or paste content
→ Tab to "Start discussion" button → Enter
Before posting a question: Search existing discussions first. Use the search bar at the top of the Discussions page or GitHub's global search with repo:owner/name in:discussions.
A discussion page is structured similarly to an issue:
- The original post at the top
- Replies in chronological order
- An "Answered" reply pinned to the top (Q&A category only)
- A reply editor at the bottom
H → Jump between the original post heading and reply headings
3 → Navigate individual reply headings
↓ → Read through content
- Navigate to the bottom of the page (or use the "Reply" button on a specific comment)
- The reply text area behaves identically to issue comments
- Focus Mode → type your reply
Ctrl+Enterto submit
Each comment has a Reply button below it:
Tab to "Reply" button on the specific comment → Enter
→ Nested text area opens under that comment
→ Focus Mode → type → Ctrl+Enter
Instead of leaving "+1" comments, use the thumbs-up reaction on the original post or replies. Many maintainers sort discussion responses by upvotes to prioritize most-needed answers.
In the Q&A category, one reply can be marked as the accepted answer. This is similar to Stack Overflow's "accepted answer" mechanic.
Only the discussion author and repository maintainers can mark an answer.
- Navigate to the reply you want to mark as the answer
- Look for the "Mark as answer" button below the reply
- Activate it - the reply is pinned to the top and the discussion shows a green "Answered" badge
Why it matters: Marked answers make Q&A discussions into searchable documentation. Anyone who searches for the same question later immediately sees the correct answer without reading the whole thread.
To unmark an answer: Activate "Unmark as answer" on the same reply.
Some discussion categories support embedded polls. A poll lets you gather structured vote data from the community.
- When creating a discussion, look for the "Add a poll" option below the body editor
- Type each poll option (up to 8 options)
- Set poll duration (optional)
- Submit the discussion - the poll appears inline
Navigate to the poll section
→ Radio buttons or checkboxes for each option
→ Space/Enter to vote
→ "Vote" button → Enter
Poll results: After voting, percentages appear next to each option. Screen readers announce the count and percentage per option.
T → Navigate tab bar to reach "Discussions" tab
H / 2 → Category section headings
3 → Individual discussion titles (h3 links)
K → Navigate all links (discussions, categories, pagination)
Enter → Open a discussion
/ → Focus the search bar (if supported)
H → Original post heading and top-level reply headings
3 → Individual replies
↓ → Read body content
Tab → Move to interactive elements (reply buttons, reactions, mark as answer)
Ctrl+Enter → Submit a reply (when in text area)
- Browse mode (NVDA+Space) to read the discussion
- Enter application mode for the reply editor
- Discussion replies are
<article>elements - NVDA announces "article" as you navigate with H
Akey navigates<article>elements - useful for jumping between replies- Use Forms Mode for the reply editor
- VO+Right to read through content
- VO+Command+L to list all links (useful for navigating many replies quickly)
- VO+Space on the reply field to enter interaction mode
Some organizations enable Discussions at the organization level, separate from any repository. These work identically to repository discussions but span the whole organization.
Common uses:
- Org-wide announcements
- Community introductions ("Introduce yourself" pinned thread)
- Cross-repo feature brainstorming
- Community spotlights and events
Find them at github.com/ORGANIZATION/discussions.
Accessibility Agents prompts currently operate on issues, PRs, and code - not directly on Discussions. If you want to respond to a discussion using Accessibility Agents:
- Copy the discussion URL or content
- Use
/issue-replywith the content pasted in: the agent will draft a thoughtful, accessible response - Paste the result back into the discussion reply editor
This works well for first-response drafts on Q&A threads or community questions in your area of expertise.