Accessibility
· 13 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.FLink & Button QualityAction31 issue(s) across 363 links and 69 buttonsFIX
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| /official-columns | Official Columnopen_in_new | new tab | Add '(opens in new tab)' to text |
| https://careers.qiita.com | Qiita Careersopen_in_new | new tab | Add '(opens in new tab)' to text |
| /official-campaigns/ai-dev-team | AI x Dev x Teamopen_in_new | new tab | Add '(opens in new tab)' to text |
| /tags/ai | 1AI223users | img no alt | Add alt attribute to the image |
| /tags/claudecode | 2ClaudeCode153users | img no alt | Add alt attribute to the image |
| /tags/python | 3Python148users | img no alt | Add alt attribute to the image |
| /tags/%e5%88%9d%e5%bf%83%e8%80%85 | 4初心者124users | img no alt | Add alt attribute to the image |
| /tags/aws | 5AWS99users | img no alt | Add alt attribute to the image |
| /tags/llm | 6LLM93users | img no alt | Add alt attribute to the image |
| /tags/%e5%80%8b%e4%ba%ba%e9%96%8b%e7%99%… | 7個人開発79users | img no alt | Add alt attribute to the image |
| /tags/security | 8Security77users | img no alt | Add alt attribute to the image |
| /tags/ai%e3%82%a8%e3%83%bc%e3%82%b8%e3%8… | 9AIエージェント71users | img no alt | Add alt attribute to the image |
| /tags/claude | 10Claude68users | img no alt | Add alt attribute to the image |
| /popular-items/feed | RSS Feed | new tab | Add '(opens in new tab)' to text |
| https://qiita.com/masa20057/items/acc90d… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/hitomin_poke/items/9d9… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/tamepicomaru/items/8f9… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/ryu-ki/items/bca0ee8f1… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/shibuya-ys/items/fb94b… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/wan-code/items/baae3ea… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/hiroki_notes/items/3de… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/take-yoda/items/00f05b… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/DuyLinhPhan/items/10c2… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/S_kamon/items/d4df1574… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/aito1234/items/e303cf4… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/s-yoshina/items/321a03… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/wan-code/items/7138654… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/hiroki_notes/items/e83… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/S_kamon/items/8935a8d0… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/i-inose/items/e644e9b6… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/TOMOSIA-HieuNT/items/7… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/tuanphan/items/9ebf41e… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/TOMOSIA-HieuNT/items/8… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/yuji-arakawa/items/da4… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/tuanphan/items/7ebb6c1… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/ntaka329/items/d7debbc… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/TOMOSIA-HieuNT/items/0… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/tuanphan/items/6183df8… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/nhatcaofedev/items/57a… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/miruky/items/f67bd754c… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/kamome_susume/items/3b… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/yushibats/items/b69c9e… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/TOMOSIA-HieuNT/items/0… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/tuanphan/items/c9c806d… | (empty) | empty | Add link text or aria-label |
| https://qiita.com/release-notes/2026-04-… | View detail | new tab | Add '(opens in new tab)' to text |
| https://blog.qiita.com/adventcalendar-20… | Qiita Advent Calendar 2025 プ… | new tab | Add '(opens in new tab)' to text |
| https://blog.qiita.com/adventcalendar-20… | Qiita Advent Calendar 2025 Qii… | new tab | Add '(opens in new tab)' to text |
| https://teams.qiita.com/?utm_source=qiit… | Qiitaが作った社内向け… | new tab | Add '(opens in new tab)' to text |
| https://careers.qiita.com/ | エンジニアにマッチし… | new tab | Add '(opens in new tab)' to text |
| https://open.spotify.com/show/4E7yCLeCLe… | エンジニアのキャリア… | new tab | Add '(opens in new tab)' to text |
| https://www.hitachi.co.jp/ | 株式会社日立製作所 | new tab | Add '(opens in new tab)' to text |
| https://pay.jp/ | PAY.JP | new tab | Add '(opens in new tab)' to text |
| https://cloud.google.com/ | グーグル・クラウド・… | new tab | Add '(opens in new tab)' to text |
| https://www.udemy.com/?utm_medium=udemya… | Udemy | new tab | Add '(opens in new tab)' to text |
| https://techdoor.persol-group.co.jp/ | パーソルホールディン… | new tab | Add '(opens in new tab)' to text |
| https://www.msoldigi.com/ | 株式会社MSOL Digital | new tab | Add '(opens in new tab)' to text |
| / | (empty) | empty | Add link text or aria-label |
| https://help.qiita.com/ja/articles/qiita… | Guideline | new tab | Add '(opens in new tab)' to text |
| https://help.qiita.com/ja/articles/other… | Media Kit | new tab | Add '(opens in new tab)' to text |
| https://github.com/increments/qiita-disc… | Feedback/Requests | new tab | Add '(opens in new tab)' to text |
| https://help.qiita.com | Help | new tab | Add '(opens in new tab)' to text |
| https://business.qiita.com/?utm_source=q… | Advertisement | new tab | Add '(opens in new tab)' to text |
| https://x.com/qiita | @Qiita | new tab | Add '(opens in new tab)' to text |
| https://x.com/qiita_milestone | @qiita_milestone | new tab | Add '(opens in new tab)' to text |
| https://x.com/qiitapoi | @qiitapoi | new tab | Add '(opens in new tab)' to text |
| https://www.facebook.com/qiita/ | new tab | Add '(opens in new tab)' to text | |
| https://www.youtube.com/@qiita5366 | YouTube | new tab | Add '(opens in new tab)' to text |
| https://open.spotify.com/show/4E7yCLeCLe… | Podcast | new tab | Add '(opens in new tab)' to text |
| https://teams.qiita.com/ | Qiita Team | new tab | Add '(opens in new tab)' to text |
| https://zine.qiita.com?utm_source=qiita&… | Qiita Zine | new tab | Add '(opens in new tab)' to text |
| https://suzuri.jp/qiita | Official Shop | new tab | Add '(opens in new tab)' to text |
| https://corp.qiita.com/company | About Us | new tab | Add '(opens in new tab)' to text |
| https://corp.qiita.com/jobs/ | Careers | new tab | Add '(opens in new tab)' to text |
| https://blog.qiita.com | Qiita Blog | new tab | Add '(opens in new tab)' to text |
| https://corp.qiita.com/releases/ | News Release | new tab | Add '(opens in new tab)' to text |
| https://www.a-tm.co.jp/top/ | E-desu: A media outlet solving… | new tab | Add '(opens in new tab)' to text |
| https://www.a-tm.co.jp/qa | E-desu Expert consultation q&a | new tab | Add '(opens in new tab)' to text |
| https://a-cashing.com/ | Navinavi cashing: Cash advance… | new tab | Add '(opens in new tab)' to text |
| https://hikkoshizamurai.jp/ | Hikkoshizamurai: Moving quote … | new tab | Add '(opens in new tab)' to text |
| https://moving.a-tm.co.jp/ | Moving price guide: Find the c… | new tab | Add '(opens in new tab)' to text |
| https://hikkoshizamurai.jp/soldi/ | Soldi: Recommended low-cost SI… | new tab | Add '(opens in new tab)' to text |
| https://www.pianocenter.jp/ | Piano purchase center | new tab | Add '(opens in new tab)' to text |
| https://career-picks.com/ | CAREER PICKS: job change servi… | new tab | Add '(opens in new tab)' to text |
| https://www.navikuru.jp/ | Navikuru: Car purchase & used … | new tab | Add '(opens in new tab)' to text |
| https://hana-yume.net/ | Hanayume: Find your wedding & … | new tab | Add '(opens in new tab)' to text |
| https://jobs.qiita.com/ | Qiita Job Change | new tab | Add '(opens in new tab)' to text |
| https://microcms.io/ | microCMS: API-based headless C… | new tab | Add '(opens in new tab)' to text |
Links without text are announced as raw URLs by screen readers.
https://qiita.com/masa20057/items/acc90d24eb083dba9462; https://qiita.com/hitomin_poke/items/9d91ff5ad51001237a02; https://qiita.com/tamepicomaru/items/8f9b238ae28e380e6029; https://qiita.com/ryu-ki/items/bca0ee8f15a13dfd8cfa; https://qiita.com/shibuya-ys/items/fb94b54ef5f9a7df59fc; https://qiita.com/wan-code/items/baae3ea02fb98f642ba8; https://qiita.com/hiroki_notes/items/3de8503e5f5f9e33e2d9; https://qiita.com/take-yoda/items/00f05b0b517ee3a7c427; https://qiita.com/DuyLinhPhan/items/10c2fe5da615ae145471; https://qiita.com/S_kamon/items/d4df15743c952e7af31d (+21 more)
Links with no accessible text (empty <a></a>, image-only no alt, icon-only no aria-label) are unidentifiable to screen readers.
Source: WCAG 2.1 SC 2.4.4
Image-only links need alt text on the image (or aria-label on the link) so screen readers can announce them.
a[href="/tags/ai"]; a[href="/tags/claudecode"]; a[href="/tags/python"]; a[href="/tags/%e5%88%9d%e5%bf%83%e8%80%85"]; a[href="/tags/aws"]; a[href="/tags/llm"]; a[href="/tags/%e5%80%8b%e4%ba%ba%e9%96%8b%e7%99%ba"]; a[href="/tags/security"]; a[href="/tags/ai%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88"]; a[href="/tags/claude"]
Image-only links with no alt are unidentifiable to screen-reader users — link's destination is invisible.
Source: WCAG 2.1 SC 2.4.4
Add '(opens in new tab)' to link text or aria-label.
/official-columns; https://careers.qiita.com; /official-campaigns/ai-dev-team; /popular-items/feed; https://qiita.com/release-notes/2026-04-07/release-stock-trend-feed; https://blog.qiita.com/adventcalendar-2025-presents/?utm_source=qiita&utm_med…; https://blog.qiita.com/adventcalendar-2025-qiitapresents/?utm_source=qiita&ut…; https://teams.qiita.com/?utm_source=qiita&utm_medium=sidebar_banner; https://careers.qiita.com/; https://open.spotify.com/show/4E7yCLeCLeQUsNqM4HXFXA (+36 more)
Links with target="_blank" without rel="noopener" leak the originating page's window context — security and UX issue.
Learn more ▾ ▴
Without rel="noopener", the new tab can navigate the original tab via window.opener (tab-nabbing attack). Modern browsers default to noopener for target=_blank but only since recent versions. Always set rel="noopener noreferrer" explicitly.
Source: MDN target / OWASP
DDark Mode SupportActionTheme color onlyFIX
Detection limited to meta tags and inline styles.
DPrint StylesheetActionNo print stylesFIX
BHeading Hierarchy31 headingsREVIEW
- H2 【初心者エンジニア向け】開発を前に進めるための行動3選
- H2 一人で悩み続けてしまう新人エンジニアへ。その時間、無駄かもしれません。
- H2 Claude Codeの利用状況をチームで可視化するダッシュボードをOSSで公開しました
- H2 【Claude Design】見せてもらおうか Claude Designの性能とやらを
- H2 【Obsidian】作図が簡単にできるプラグイン「Excalidraw」の紹介
- H2 n8nで植物の水やりリマインドBOTを作ってみた(Discord連携)
- H2 React初心者がつまずきやすいJavaScript記法をわかりやすく整理してみた
- H2 Claude Code実行中にターミナルを閉じても大丈夫にする方法(tmux)
- H2 Docker環境を1台のサーバーで共存させる:80/443ポート競合を解決する実践構成
- H2 関数型インターフェース入門 — Function / Predicate / Consumer / Supplier を整理する
- H2 Claude Codeを使って分かった「開発で詰まるポイントの正体」
- H2 Claude Code × MagicPod MCPでテストケースメンテナンスレビューを自動化してみた
- H2 n8nでBBCニュースを自動翻訳・要約してDiscordに通知する仕組みを作ってみた
- H2 レイヤードアーキテクチャを図とコードでやさしく理解する(C# / ASP.NET Core)
- H2 == と equals() の違いを完全に理解する — なぜStringの比較は equals() を使うのか
- H2 【初心者必見】今から追いつくClaude Code 入門・徹底解説
- H2 [TypeScriptシリーズ - Part 5] Branded Types
- H2 [Frontend Performance] パフォーマンスは「最後にやるもの」ではない
- H2 [TypeScriptシリーズ - Part 6] Dependency Injection in TypeScript
- H2 記憶を持たないLLMの記憶 ― コンテキスト/メモリー/ハーネスエンジニアリング入門の前に
- H2 【対策】XSS・CSRF・クライアントサイドセキュリティ完全対策ガイド
- H2 Claude Code の週次タスクを安定させたくて、MCPを捨てて公式CLI(bee / Pup)に移行した話
- H2 [TypeScriptシリーズ - Part 4] Variance
- H2 [Frontend Performance - Part 1] ブラウザの描画処理を理解する(Rendering Pipeline入門)
- H2 React Hook Form 入門 Part 1 — 仕組みを理解してから使う
- H2 【徹底解説】DBスペシャリストなりぞこないが教える、データベースの教科書(設計もあるよ)
- H2 Claude Codeで開発を自動化するSkills 5選
- H2 5分でわかる!データリネージとは?
- H2 # [TypeScriptシリーズ - Part 3] Template Literal Types
- H2 [Frontend Performance - Part 2] Reflow / Repaint / Compositeの違いとは?ブラウザが重くなる瞬間を理解する)
- H2 Why don't you log in to Qiita to read more recommended articles?
Every page should have one H1 that describes the page content.
No H1 means screen-reader users can't identify the page's primary topic, and Google's content-extraction degrades.
Learn more ▾ ▴
The H1 is the document title for assistive tech and a strong signal to search engines about page topic. Pages without one force screen readers to fall back to the <title> attribute or page chrome. Add a single H1 that names the page's primary subject.
Source: WCAG 2.4.6 / Google Search Central
CForm AccessibilityAction3 of 3 controls have issuesREVIEW
| Control | Type | Label | Method |
|---|---|---|---|
| q | search | (Search) | placeholder only |
| q | text | (Search) | placeholder only |
| select | select | (none) | none |
Form controls need a <label>, aria-label, or aria-labelledby for screen readers.
<select>
Form controls without labels — assistive tech announces 'edit text' with no context; users can't complete forms.
Source: WCAG 2.1 SC 3.3.2
Placeholder text disappears on focus and is not a reliable label.
<input type="search" name="q">; <input type="text" name="q">
Placeholder-only labels disappear when the user starts typing — they must remember what the field was for.
Learn more ▾ ▴
Placeholders are NOT labels. They vanish on input, fail color contrast checks (most are gray), and don't satisfy WCAG SC 3.3.2. Always use a real <label> alongside (or aria-labelledby).
Source: WCAG 2.1 SC 3.3.2 / Nielsen Norman
CFavicon & BrandingAction6 icon(s) detectedREVIEW
ALandmark Structure67 landmarksPASS
Add a skip link as the first focusable element so keyboard users can bypass repeated navigation.
Without a skip-nav link, keyboard users tab through every nav item before reaching content — every page, every visit.
Learn more ▾ ▴
WCAG 2.4.1 (Bypass Blocks) requires a mechanism to skip past repeated content. The standard implementation is a 'Skip to main content' link that's the first focusable element, visually hidden until focused. Three lines of HTML + four of CSS.
Source: WCAG 2.1 SC 2.4.1
AAlt Text Quality1 of 81 images have issuesPASS
| Issue | Count |
|---|---|
| missing | 1 image(s) |
Images without alt text are invisible to screen readers.
Each image without alt text is a WCAG 1.1.1 failure — invisible to screen-reader users, lost from Google Image Search.
Learn more ▾ ▴
WCAG 2.1 Level A requires text alternatives for non-decorative images. Empty alt='' is fine for decorative; meaningful images need descriptive text. Common fixes: CMS audit + bulk add, build-time linter (alt-text-required ESLint rule), CI gate on Lighthouse a11y score.
Source: WCAG 2.1 SC 1.1.1 / WebAIM Million Report
A404 Error PageHTTP 404, custom pagePASS
A+Web ManifestPWA-readyPASS
A+Color Contrast (Screenshot)20 text elements analyzed, 0 fail WCAG AAPASS
Analyzes text contrast against the actual rendered page, including background images, gradients, and overlays that CSS-based tools cannot detect.
Show all checked elements (20)
| Element | Ratio | Required | FG | BG | Result |
|---|---|---|---|---|---|
| h2 Why don't you log in… | 16.67:1 | 3.0:1 | #000000 | #E5E5E5 | Pass |
| title Qiita | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| span search | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| span search | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| span Search | 19.40:1 | 4.5:1 | #000000 | #F5F6F6 | Pass |
| a Login | 19.40:1 | 4.5:1 | #000000 | #F5F6F6 | Pass |
| a Signup | 19.40:1 | 4.5:1 | #000000 | #F5F6F6 | Pass |
| span search | 19.40:1 | 4.5:1 | #000000 | #F5F6F6 | Pass |
| a Trend | 19.40:1 | 4.5:1 | #000000 | #F5F6F6 | Pass |
| a Stock List | 19.40:1 | 4.5:1 | #000000 | #F5F6F6 | Pass |
| a Question | 19.40:1 | 4.5:1 | #000000 | #F5F6F6 | Pass |
| a Qiita Conference | 19.40:1 | 4.5:1 | #000000 | #F5F6F6 | Pass |
| a Official Event | 20.08:1 | 4.5:1 | #000000 | #F9FAFA | Pass |
| a Official Column | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| span open_in_new | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Organization | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Qiita Careers | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| span open_in_new | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a AI x Dev x Team | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| span open_in_new | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
Methodology: The top 20 text elements by font size were checked. Background color was sampled from the desktop screenshot using a 5-point pattern. WCAG 2.1 AA requires 4.5:1 for normal text and 3:1 for large text.
ALighthouse Accessibility AuditsScore 92/100 — 3 failing, 25 passedPASS
Accessibility
These checks highlight opportunities to improve the accessibility of your web app. Automatic detection can only detect a subset of issues and does not guarantee the accessibility of your web app, so manual testing is also encouraged.
Names and labels
Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. Learn more about the `alt` attribute.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
body > div.coins-optin-dialog > div.coins-optin-dialog-icon > img body > div.coins-optin-dialog > div.coins-optin-dialog-icon > img |
These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.
Best practices
Touch targets with sufficient size and spacing help users who may have difficulty targeting small controls to activate the targets. Learn more about touch targets.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
All div.style-1p79y90 > div.style-ymwvwh > div.style-k008qs > button.style-rsiuq2 |
flag
新人プログラマ応援 - みんなで新人を育てよう! main.style-13bbk6m > div.style-1p44k52 > article.style-1w7apwp > a.style-hayto5 |
@masa20057 header.style-12s080b > div.style-1jaw0rg > p.style-7d8kow > a.style-1h2ruwl |
株式会社PRUM header.style-12s080b > div.style-1jaw0rg > p.style-7d8kow > a.style-1h2ruwl |
flag
新人プログラマ応援 - みんなで新人を育てよう! main.style-13bbk6m > div.style-1p44k52 > article.style-1w7apwp > a.style-hayto5 |
@hitomin_poke(ひとみん) header.style-12s080b > div.style-1jaw0rg > p.style-7d8kow > a.style-1h2ruwl |
新人エンジニア footer.style-wr1ke6 > ul.style-1av12sx > li > a.style-19h8hex |
flag
新人プログラマ応援 - みんなで新人を育てよう! main.style-13bbk6m > div.style-1p44k52 > article.style-1w7apwp > a.style-hayto5 |
@take-yoda(依田 健人) header.style-12s080b > div.style-1jaw0rg > p.style-7d8kow > a.style-1h2ruwl |
flag
新人プログラマ応援 - みんなで新人を育てよう! main.style-13bbk6m > div.style-1p44k52 > article.style-1w7apwp > a.style-hayto5 |
@i-inose(Izuru Inose) header.style-12s080b > div.style-1jaw0rg > p.style-7d8kow > a.style-1h2ruwl |
flag
新人プログラマ応援 - みんなで新人を育てよう! main.style-13bbk6m > div.style-1p44k52 > article.style-1w7apwp > a.style-hayto5 |
@miruky(miruky) header.style-12s080b > div.style-1jaw0rg > p.style-7d8kow > a.style-1h2ruwl |
ClaudeCode footer.style-wr1ke6 > ul.style-1av12sx > li > a.style-19h8hex |
flag
新人プログラマ応援 - みんなで新人を育てよう! main.style-13bbk6m > div.style-1p44k52 > article.style-1w7apwp > a.style-hayto5 |
@yushibats header.style-12s080b > div.style-1jaw0rg > p.style-7d8kow > a.style-1h2ruwl |
日本オラクル株式会社 header.style-12s080b > div.style-1jaw0rg > p.style-7d8kow > a.style-1h2ruwl |
These items highlight common accessibility best practices.
Visible text labels that do not match the accessible name can result in a confusing experience for screen reader users. Learn more about accessible names.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
Remarkable items.Refreshed at every 5 a.m.and 5 p.m.
rss_feed div.style-1r8xejc > main.style-13bbk6m > div.style-7jelsc > a.style-1a1bxcj |