GitHub Discussions
Forum-style conversations, Q&A, polls, and navigation with screen readers.
Listen
Transcript
Alex: Welcome back. Today we're talking about GitHub Discussions, which is GitHub's built-in forum space for a repository or an organization.
Jamie: So not an issue, not a pull request, but still part of the project conversation.
Alex: Exactly. Discussions are for threaded community conversations: questions, ideas, announcements, polls, and show-and-tell posts. They sit beside the more action-focused tools, so the community can talk without turning every question into a task.
Jamie: I like that distinction, because a lot of people hesitate before posting. They wonder, am I making work for someone just by asking this?
Alex: And Discussions gives you a softer place to ask, explore, and learn. It is still public project communication, but it does not carry the same meaning as opening an issue or proposing code.
Jamie: Okay, so when do I use Discussions, when do I use Issues, and when do I use a pull request?
Alex: Use an issue when there is trackable work: a bug, a setup blocker, an accessibility barrier, or a specific feature request. Use a discussion when you have a question, want community input, or want to brainstorm before deciding what work should exist. Use a pull request when you are proposing an actual change to files.
Jamie: So if I ask, "How does this agent work with my screen reader setup?" that sounds like a discussion. If I say, "This button has no accessible name," that sounds like an issue.
Alex: Yes. And if you have already changed the code or documentation to fix that button label, then a pull request is the right container for the proposed fix.
Jamie: What kinds of discussion categories should learners expect to hear about?
Alex: Common ones are Q&A for support questions, Ideas for brainstorming, Announcements for maintainer updates, General for open conversation, and Show and Tell for sharing what you built. Q&A is special because one reply can be marked as the accepted answer.
Jamie: That accepted answer part is helpful. It means the thread can stay conversational, but someone can still find the answer quickly later.
Alex: Right. And for workshop alumni, the support hub is a good example of this split. The support home points you to Discussions for community Q&A, and to Issues for trackable support requests like setup blockers or accessibility blockers.
Jamie: Before posting there, read the pinned Start Here resources and search existing discussions. That saves everyone from having the same conversation five times.
Alex: To find Discussions from a repository, open the repository and move through the main navigation where you hear Code, Issues, Pull Requests, Actions, Projects, and sometimes Discussions.
Jamie: And sometimes you will not hear Discussions at all.
Alex: Correct. Discussions is optional. If the tab is missing, that usually means the maintainer has not enabled it for that repository.
Jamie: What about big communities that are not centered on one repository?
Alex: Organizations can have Discussions too. Those live at the organization level, so they are community-wide conversations instead of conversations tied to one repo.
Jamie: So a repo Discussion is about that project, while an organization Discussion might be about the wider community, support process, roadmap, or shared practice.
Alex: Once you land on the Discussions page, categories become your map. Each category acts like a section, and each one can contain many threads.
Jamie: This is where low-vision learners may notice the layout shifting, right?
Alex: Yes. The category panel may appear on the left or right depending on the width of the window and zoom level. It usually shows category names with item counts, pinned posts or announcements, active discussions, and sometimes tags.
Jamie: Those counts are not just decoration. They help you tell where the activity is.
Alex: For keyboard browsing, heading navigation is useful because category names are headings. You can also use link navigation to move through discussion titles, then press Enter to open the thread you want.
Jamie: And if a screen reader has a quick key for tabs or links, the Discussions tab itself is reachable from the repository navigation without needing to visually scan the page.
Alex: Creating a discussion starts from the Discussions tab. Activate the "New discussion" button, then choose a category.
Jamie: The category comes first because it changes the kind of conversation you are starting.
Alex: Exactly. Pick Q&A for a question, Ideas for brainstorming, General when nothing else fits, and so on. Then write a clear title and a body using Markdown, the same style of editor you use for issues and comments.
Jamie: For Q&A, I would make the title a real question, like "How do I use the daily briefing agent with NVDA?" Not just "Help."
Alex: That is much easier to search later. A screen reader path would be: Tab to "New discussion," press Enter, use the category selector, type the title, move to the body editor, enter focus mode if your screen reader needs it, write the post, then activate "Start discussion."
Jamie: And if Ctrl+Enter submits in that editor, it feels familiar because it matches issue comments.
Alex: After creating the discussion, GitHub may show a success message near the top. If you are zoomed in and do not hear or see confirmation, move back toward the top of the page and check where you landed.
Jamie: Once a discussion exists, what does the page feel like?
Alex: It is similar to an issue page. The original post is at the top, replies follow in order, and the reply editor is usually near the bottom. In Q&A discussions, an accepted answer can also be pinned near the top.
Jamie: So I should not assume the first thing after the original post is just the first reply chronologically.
Alex: Right. If the thread is answered, the accepted answer may appear before the regular timeline so people can get to it quickly.
Jamie: How do you move through replies efficiently?
Alex: Use headings to jump between major parts of the thread, and read down through the content when you find the reply you want. GitHub also marks replies as article elements, so NVDA and JAWS users can often press A to jump between replies.
Jamie: And replying is basically the same as commenting on an issue?
Alex: Yes. Move to the reply editor at the bottom, type your message, and submit. If you want to respond to a specific comment, use that comment's "Reply" button, which opens a nested editor under it.
Jamie: Let's talk about marking answers, because that is one of the big differences between Q&A and a normal conversation.
Alex: In a Q&A discussion, the discussion author or a maintainer can mark a reply as the answer. GitHub then shows the thread as answered, often with a green badge or checkmark, and the accepted answer is easier to find.
Jamie: That helps future readers, but it also helps the person who asked the question close the loop.
Alex: Yes. And if the answer reveals that real work needs to happen, the conversation can move into an issue. Some projects allow maintainers to convert a discussion to an issue, which preserves the context while creating something trackable.
Jamie: So a discussion can be the place where the community figures out what is true, and an issue can be the place where the project tracks what to do about it.
Alex: Exactly. Then a pull request is where someone proposes the file changes that solve the issue.
Jamie: Where do polls fit into all of this?
Alex: Polls are a discussion format for collecting community preference. When you create one, you write a title and prompt, add answer options, and post it so people can vote.
Jamie: So it is not a scientific survey, but it is useful for quick direction.
Alex: Right. After voting, people usually see result bars and percentages for the options. For low-vision users, those bars may use color and fill, so listen for or look for the text percentages too.
Jamie: And upvoting is separate from polls.
Alex: Yes. Use the thumbs-up reaction on a discussion or reply when you agree or want to signal importance. That is much better than posting a comment that only says "+1," because maintainers can often scan or sort by reactions.
Jamie: It keeps the thread readable while still letting the community show what matters to them.
Alex: For screen reader navigation, start by treating the Discussions list like a structured page. Use landmarks to find the main content, headings to move between categories or thread areas, and links to open individual discussions.
Jamie: Inside a discussion, the original post, replies, answer area, and editor each become places to orient from.
Alex: Yes. NVDA users can try A for article navigation between replies, and JAWS users can often do the same. VoiceOver users will usually lean on headings, landmarks, and the VoiceOver rotor to move between controls and page regions.
Jamie: And the tab strip shortcut matters too. If your setup supports it, T can move among tab items, and link navigation can help you find the Discussions link.
Alex: When you reach an editor, remember that typing may require focus mode or forms mode depending on your screen reader. The editor behaves like other GitHub comment boxes, so Markdown, preview, and keyboard submission should feel familiar.
Jamie: How does this connect to the Accessibility Agents work in the curriculum?
Alex: The Accessibility Agents collection is a living catalog, so conversation matters. Challenge 15 is browse-first: learners discover agents and patterns without being required to fork that repository just to complete the challenge.
Jamie: That makes Discussions a natural place for questions like, "Which agent fits this task?" or "Has anyone tried this workflow with my assistive technology?"
Alex: Exactly. Completing Challenge 15 unlocks Challenge 16, the Capstone Project, along with Bonus Challenges A through E as a structured path. The capstone can involve Accessibility Agents, GLOW, or another meaningful repository, and review-ready drafts or contribution plans can count as valid evidence.
Jamie: So Discussions can support planning and feedback, even when the final evidence is not a merged code change.
Alex: Right. And earlier Day 1 contribution practice still happens in the learner's Learning Room repository: issue, branch, commit, pull request, and merge. Discussions does not replace that workflow; it gives the community a better place to talk around it.
Jamie: The appendix also pairs Discussions with Gists. Different tool, but still community content.
Alex: A Gist is a small shareable bundle of one or more files. It is useful for a code snippet, a quick Markdown note, a screen reader configuration example, or a short log you want someone else to inspect.
Jamie: So when would I choose a Gist instead of a repository?
Alex: Use a Gist when the thing is small and self-contained. Use a repository when the work needs project structure: issues, pull requests, branches, documentation, releases, tests, or a longer history of collaboration.
Jamie: Give me the practical creation path.
Alex: Open the Gist page, add a filename, type or paste the content, and choose whether to create a public or secret Gist. If you need more than one file, use the add-file control before creating it. Screen reader users can move by form fields and buttons, and file extensions help GitHub apply the right formatting.
Jamie: And examples would be something like NVDA settings for GitHub web navigation, workshop Day 1 notes, or a code snippet you want to reference in a Stack Overflow answer.
Alex: After a Gist exists, you can edit it, view its revision history, embed it in a web page, clone it with Git, or fork it to make your own copy.
Jamie: Finding your own Gists is usually through your profile or the Gist site, and public Gists can also be discovered through search.
Alex: Yes. Gists can have comments too. Open the Gist, move to the comment editor, type your response, and submit it just like other GitHub comment areas.
Jamie: The privacy part is the one I really want learners to hear clearly.
Alex: Public Gists are visible and can be indexed. Secret Gists are unlisted, but anyone with the link can open them. Never put passwords, tokens, private keys, student data, or sensitive logs in a Gist.
Jamie: Secret does not mean protected. It means hard to find unless someone has the URL.
Alex: Exactly. And if you delete a Gist, treat that as permanent. Before deleting, make sure you have saved anything you still need.
Jamie: For anything that changes over time, check GitHub's current documentation for Discussions and Gists. The interface can shift, but the decision pattern stays pretty stable: talk in Discussions, track work in Issues, propose changes in pull requests, and share small standalone notes in Gists.
Workshop Content
Companion Podcast and Transcript
Use audio and transcript companions to review concepts in a conversational format.
GitHub Gists
Companion audio: this episode reinforces key ideas and may not be a word-for-word reading of this page.
Open audio file (external) Full transcript source (external)
Transcript preview
Alex: Welcome back. Today we're looking at GitHub Gists, which are one of the lightest ways to share code, notes, examples, and small configuration files.
Jamie: So not a whole project, not a full repository, just a quick shareable thing?
Alex: Exactly. A Gist can hold one file or several files, and each file can have syntax highlighting if GitHub recognizes the extension. It's useful when you want to show a snippet, save a small note, or give someone a reproducible example without creating an entire repo.
Jamie: I like that middle ground. Sometimes an issue comment is too cramped, but a new repository feels like overkill.
GitHub Discussions
Companion audio: this episode reinforces key ideas and may not be a word-for-word reading of this page.
Open audio file (external) Full transcript source (external)
Transcript preview
Alex: Welcome back. Today we're talking about GitHub Discussions, which is GitHub's built-in forum space for a repository or an organization.
Jamie: So not an issue, not a pull request, but still part of the project conversation.
Alex: Exactly. Discussions are for threaded community conversations: questions, ideas, announcements, polls, and show-and-tell posts. They sit beside the more action-focused tools, so the community can talk without turning every question into a task.
Jamie: I like that distinction, because a lot of people hesitate before posting. They wonder, am I making work for someone just by asking this?
Appendix U: Discussions and Gists
Reference companion to: Chapter 08: Open Source Culture | Also relevant: Chapter 10
Authoritative source: GitHub Docs: About discussions
This appendix consolidates two related community content features: GitHub Discussions (formerly Appendix G) and GitHub Gists (formerly Appendix F).
GitHub Discussions
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.
Forum-Style Conversations Beyond Issues and Pull Requests
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.
Support Hub Onboarding (Recommended For Workshop Alumni)
For ongoing support after the workshop, use:
- Support hub home: Community-Access/support
- Q&A and community discussion: Support Hub Discussions
- Trackable support requests: Support Hub Issues
Suggested first steps for students:
- Read the pinned Start Here resources in Discussions.
- Search existing discussions before opening a new support thread.
- Use issue templates for setup blockers or accessibility blockers so maintainers can help faster.
Learning Cards: GitHub Discussions
Screen reader users
- The Discussions tab is in the repository's main navigation bar alongside Code, Issues, and Pull Requests -- press
Tto navigate tab items orKto find the "Discussions" link - Inside a discussion, replies are
articleelements -- in NVDA pressAto jump between replies; in JAWS useAas well - The reply editor uses the same behavior as issue comments -- enter Focus Mode to type, then press
Ctrl+Enterto submit
Low vision users
- Discussion categories appear as a sidebar panel on the left or right depending on viewport width -- look for the category list with item counts
- Answered discussions in the Q&A category display a green "Answered" badge next to the title, with the accepted answer pinned to the top
- Polls show percentage bars next to each option after you vote -- the bars use color fill to indicate proportion
Sighted users
- Discussions are organized by category with colored labels -- the sidebar shows all categories and pinned items
- In Q&A threads, look for the green checkmark on the accepted answer pinned above the regular reply timeline
- Use the upvote button (thumbs up) on replies instead of posting "+1" comments -- maintainers often sort by upvotes
Table of Contents
- 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
1. Discussions vs. Issues: When to Use Which
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.
Common Discussions categories you'll encounter
- 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
2. Navigating to Discussions
From a Repository
- 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.
From an Organization
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
3. Discussion Categories
The Discussions home page is organized by category. Each category is a section with its own heading.
Navigating categories
3 → Jump to category headings
K → Navigate discussion titles within a category
Enter → Open a discussion
The side panel (left or right depending on view width) shows
- All categories with item counts
- Pin/announcements section at top
- Most active discussions
- Tags (if the repo uses them)
4. Creating a Discussion
- 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"
Screen reader path
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.
Learning Cards: Creating a Discussion
Screen reader users:
- Tab to the "New discussion" button from the Discussions tab, then press Enter -- the form loads with a category selector first; arrow through categories and press Enter to select
- The title field comes after the category selector -- type a clear, searchable title; for Q&A category, phrase it as a question so it reads naturally in search results
- The body editor is the same as the issue comment editor -- enter Focus Mode to type, use Markdown formatting, and press
Ctrl+Enterto submit the discussion
Low-vision users:
- The category selector appears as a list or grid of labeled options -- each category has a name and description; zoom in to read the descriptions and pick the right one
- The title and body fields stack vertically in a single-column layout -- the form is the same width as the main content area, making it easy to scan at high zoom
- After creating a discussion, a green success banner appears at the top -- scroll up if you do not see confirmation at your current zoom position
Sighted users:
- Categories appear as clickable cards or a list when creating a new discussion -- choose Q&A for questions (allows marking an answer), Ideas for brainstorming, General for everything else
- The "New discussion" button is prominently placed at the top-right of the Discussions tab -- the form layout is nearly identical to the new issue form
- Search existing discussions before posting -- use the search bar at the top of the Discussions page to avoid duplicate questions
5. Participating in Discussions
Reading a Discussion
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
Navigation
H → Jump between the original post heading and reply headings
3 → Navigate individual reply headings
↓ → Read through content
Replying to a Discussion
- 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
Replying to a Specific Comment (Nested Reply)
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
Upvoting
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.
6. Marking an Answer
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.
To mark an answer (as the discussion author)
- 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.
7. Polls
Some discussion categories support embedded polls. A poll lets you gather structured vote data from the community.
Creating a poll
- 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
Voting in a poll
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.
8. Screen Reader Navigation Reference
Discussions List
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)
Inside a Discussion
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)
NVDA note
- 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
JAWS note
Akey navigates<article>elements - useful for jumping between replies- Use Forms Mode for the reply editor
VoiceOver note
- 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
9. Organization-Level Discussions
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.
10. Accessibility Agents: What's Different Here
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.
Return to: Resources | Glossary
GitHub Gists
Listen to Episode 23: GitHub Gists - a conversational audio overview of this chapter. Listen before reading to preview the concepts, or after to reinforce what you learned.
Shareable Code Snippets and Notes
Gists are a simple way to share code snippets, notes, or small files without creating a full repository. Think of them as lightweight, version-controlled pastebins.
Learning Cards: GitHub Gists
Screen reader users
- On the Gist creation page at gist.github.com, press
Dto jump to the main landmark, thenFto navigate form fields: Description, Filename, Content, and Visibility buttons - Your Gists page lists each gist as an
H2heading with its description -- press2orHto jump between gists - Gists are full Git repositories -- you can clone them with
git cloneand edit locally using your usual screen reader workflow in VS Code
Low vision users
- Gist pages use syntax highlighting matching GitHub's current theme -- switch between light and dark mode for comfortable reading
- Public and secret gists look identical on the page; the only difference is the URL visibility -- check the "Create secret gist" or "Create public gist" button label before submitting
- The revision history link appears at the top of any gist -- click "Revisions" to see a diff view of every edit
Sighted users
- Gists live at gist.github.com, separate from regular repositories -- each gist shows a syntax-highlighted code block with filename tabs at the top
- The visibility selector is a split button at the bottom of the editor -- the dropdown arrow reveals "Create secret gist" vs "Create public gist"
- You can add multiple files to one gist using the "Add file" button below the first editor pane
What Is a Gist?
A Gist is a Git repository that holds a single file or a small collection of files. Every Gist:
- Has its own URL (e.g.,
gist.github.com/username/a1b2c3d4) - Is version-controlled (you can see edit history)
- Can be public (anyone can see) or secret (only people with the link can see)
- Supports Markdown rendering
- Can be embedded in web pages
- Can be cloned, forked, and starred just like repos
Secret does not mean private. Anyone with the URL can view a secret Gist. It's just not listed publicly on your profile.
When to Use a Gist vs a Repository
| Use a Gist When... | Use a Repository When... |
|---|---|
| Sharing a single code snippet | Building a full project |
| Posting configuration examples | Collaborating with multiple people |
| Quick notes or documentation | Need issues, PRs, or project management |
| Sharing logs or error messages | Want CI/CD and automated checks |
| Small utility scripts | Need multiple branches |
Creating a Gist
Via GitHub Web Interface
- Navigate to gist.github.com
- Gist description: A short title (e.g., "NVDA configuration for GitHub")
- Filename: Name your file with extension (e.g.,
nvda-config.txt,script.py,notes.md) - Content: Paste or type your code/text
- Visibility:
- Select "Create public gist" for openly shareable content
- Select "Create secret gist" for link-only sharing
- The Gist is created with a unique URL you can share
Screen reader navigation
Dto cycle landmarks to "Main"Fto navigate form fields- Tab through: Description → Filename → Content textbox → Visibility buttons
Adding Multiple Files to a Gist
You can add multiple files to a single Gist:
- After typing the first filename and content, select "Add file" (button below the editor)
- Repeat for each additional file
- Create the Gist
Use case: Share related config files together (e.g., .vscode/settings.json + .vscode/keybindings.json)
Learning Cards: Creating a Gist
Screen reader users:
- On the Gist creation page at gist.github.com, press
Dto jump to the main landmark, thenFto navigate form fields in order: Description, Filename, Content textarea, and visibility buttons - The visibility selector is a split button -- the main button creates a public gist; Tab to the dropdown arrow next to it and press Enter to reveal the "Create secret gist" option
- Each filename field has a corresponding content textarea directly below it -- after filling one file, Tab to the "Add file" button to add another file to the same gist
Low-vision users:
- The Gist editor uses the same syntax highlighting as regular GitHub files -- your current theme applies; increase font size in browser zoom for comfortable editing
- The split button for public vs. secret visibility is at the bottom of the form -- the two options look nearly identical; read the button label carefully ("Create public gist" vs. "Create secret gist") before clicking
- The "Add file" button appears below the first file editor as a small text link -- zoom in to find it; each additional file gets its own filename field and content textarea
Sighted users:
- The Gist creation form has three main fields stacked vertically: description at the top, then filename, then a large code editor -- fill all three before choosing visibility
- The visibility split button at the bottom-right has a dropdown arrow -- click the arrow to choose between public and secret; the default (larger) button creates a public gist
- Add multiple files to a single gist using the "Add file" link below the editor -- multi-file gists are useful for sharing related configurations or code snippets together
Editing a Gist
- Navigate to your Gist's URL
- Select "Edit" (button in the top-right)
- Make your changes
- Select "Update public gist" or "Update secret gist"
Every edit creates a new revision. Click "Revisions" to see the full edit history.
Embedding a Gist
You can embed Gists in web pages, blog posts, or documentation:
<script src="https://gist.github.com/username/gist-id.js"></script>
GitHub renders it as a formatted code block with syntax highlighting and a link back to the Gist.
Accessibility note: Embedded Gists are <iframe> elements. Screen readers will announce them as "frame" and allow navigation into the content.
Cloning a Gist
Every Gist is a Git repository. You can clone it:
git clone https://gist.github.com/username/gist-id.git
Make changes locally, commit, and push just like a normal repo.
Forking a Gist
You can fork someone else's Gist to create your own copy:
- View the Gist
- Select "Fork" in the top-right
- GitHub creates a new Gist under your account
Use case: Someone shares a useful script, you fork it, and customize it for your needs.
Finding Your Gists
Your Gists page: gist.github.com/your-username
All your public and secret Gists are listed here. You can:
- Search your Gists by filename or content
- Star Gists you want to reference later
- Delete old Gists
Screen reader navigation
- Each Gist appears as a heading (H2) with its description
- Press
2orHto jump between Gists - Each Gist has links: "Edit," "Delete," "Star," "Embed"
Discovering Public Gists
Browse trending Gists: gist.github.com/discover
See popular Gists by language. Great for finding:
- Useful scripts and utilities
- Configuration examples
- Code snippets for learning
Gist Comments
Public Gists support comments. Anyone with a GitHub account can leave a comment, making Gists useful for:
- Asking questions about a snippet
- Suggesting improvements
- Discussing implementation details
To add a comment
- Scroll to the bottom of the Gist page
Fto navigate form fields → Find the comment textarea- Type your comment (Markdown supported)
Ctrl+Enteror activate "Comment" button
Security and Privacy
Public Gists
- Appear on your profile
- Are indexed by search engines
- Anyone can view, fork, and comment
Secret Gists
- Do not appear on your profile
- Are not indexed by search engines
- Anyone with the URL can view
- Still version-controlled and can be starred
Never put sensitive data in Gists
- Passwords or API keys
- Personal identifying information
- Proprietary code you don't have permission to share
If you accidentally post sensitive data:
- Delete the Gist immediately
- Revoke/regenerate any exposed credentials
- Remember: Forks and clones may still exist
Example Use Cases
1. Sharing Screen Reader Config
Filename: nvda-github-config.txt
Content:
# NVDA Settings for GitHub Web Navigation
- Browse Mode: Use screen layout (enabled)
- Verbosity: Most punctuation
- Rate: 65%
- Keyboard shortcuts: Use standard GitHub shortcuts (G+I, G+P, etc.)
Share the Gist URL with other screen reader users.
2. Quick Markdown Note
Filename: workshop-notes.md
Content:
# Workshop Day 1 Notes
- GitHub Flow: branch → commit → PR → review → merge
- Keyboard shortcuts: G+I (issues), G+P (PRs), / (search)
- Always link PRs to issues with "Closes #N"
Reference it later or share with workshop participants.
3. Code Snippet for a StackOverflow Answer
When answering questions, paste your code as a Gist and link to it. Readers get syntax highlighting, version history, and the ability to fork your solution.
Gists vs GitHub Repositories - Quick Comparison
| Feature | Gist | Repository |
|---|---|---|
| Issues | No | Yes |
| Pull Requests | No | Yes |
| GitHub Actions | No | Yes |
| Projects | No | Yes |
| Multiple branches | No | Yes |
| Revisions/history | Yes | Yes |
| Forkable | Yes | Yes |
| Embeddable | Yes | No |
| Comments | Yes | Yes (on issues/PRs) |
Deleting a Gist
- Navigate to the Gist
- Select "Edit"
- Select "Delete" (top-right, after Edit button)
- Confirm deletion
Next: Appendix V: GitHub Mobile
Back: Appendix T: Community and Social
Teaching chapter: Chapter 08: Open Source Culture
Authoritative Sources
Use these official references when you need the current source of truth for facts in this chapter.
Section-Level Source Map
Use this map to verify facts for each major section in this file.
- GitHub Discussions: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs, About Git
- Forum-Style Conversations Beyond Issues and Pull Requests: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs, About Git
- 1. Discussions vs. Issues: When to Use Which: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs, About Git
- 2. Navigating to Discussions: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs
- 3. Discussion Categories: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs
- 4. Creating a Discussion: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs
- 5. Participating in Discussions: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs
- 6. Marking an Answer: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs
- 7. Polls: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs
- 8. Screen Reader Navigation Reference: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs, W3C Web Content Accessibility Guidelines (WCAG) 2 overview
- 9. Organization-Level Discussions: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs
- 10. Accessibility Agents: What's Different Here: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs, GitHub Copilot docs
- GitHub Gists: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs, About Git
- Shareable Code Snippets and Notes: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs
- What Is a Gist?: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs
- When to Use a Gist vs a Repository: GitHub Docs, home, GitHub Changelog, GitHub Discussions docs, GitHub Gists docs, About Git