-
Notifications
You must be signed in to change notification settings - Fork 0
fix(a11y): provide a dependable new-window warning #204
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 2 commits
3206fd5
5e5fbd1
6c364b8
dfe5a2c
d728976
88ede14
6339d4f
39a055e
f4df0a3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -42,7 +42,7 @@ | |
| <a href="#projects" data-i18n="nav.projects">프로젝트</a> | ||
| <a href="#forks" data-i18n="nav.forks">Fork</a> | ||
| <a href="#work" data-i18n="nav.work">작업</a> | ||
| <a target="_blank" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab">GitHub</a> | ||
| <a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab">GitHub</a> | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Also applies to: 62-62, 257-257, 261-261, 265-265, 269-269, 330-330, 334-334, 338-338, 342-342, 346-346, 350-350, 354-354, 358-358, 362-362, 434-434 🤖 Prompt for AI Agents
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 동일하게 유효 finding입니다. title은 브라우저 툴팁용 보조 정보로 유지할 수 있지만 접근 가능한 새 창 경고의 단독 authority로 쓰지 않습니다. current-head RED는 shipped There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
🐇 ✏️ Learnings added
You are interacting with an AI system. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Acknowledged. The |
||
| </nav> | ||
| <div class="language-switch" role="group" aria-label="Language"> | ||
| <button type="button" data-lang="ko" lang="ko" aria-pressed="true" aria-label="한국어">KO</button> | ||
|
|
@@ -59,7 +59,7 @@ <h1 data-i18n="hero.title">맥락지혜 연구실</h1> | |
| 구슬이 서 말이어도 꿰어야 보배이듯, 문서, 메일, 로그, 회의록을 맥락 안에서 엮어 사람이 무엇을 결정하고 무엇을 실행할지 보이게 하는 AI 의사결정 지원 시스템을 연구하고 만듭니다. | ||
| </p> | ||
| <div class="hero-actions" role="group" aria-label="Homepage actions"> | ||
| <a target="_blank" rel="noopener noreferrer" class="button primary" href="https://github.com/ContextualWisdomLab" data-i18n="hero.primaryCta">GitHub 보기</a> | ||
| <a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" class="button primary" href="https://github.com/ContextualWisdomLab" data-i18n="hero.primaryCta">GitHub 보기</a> | ||
| <a class="button secondary" href="#dikw" data-i18n="hero.secondaryCta">DIKW 보기</a> | ||
| </div> | ||
| </div> | ||
|
|
@@ -254,19 +254,19 @@ <h2 data-i18n="references.title">참고문헌</h2> | |
| <ol class="reference-list"> | ||
| <li> | ||
| <span data-i18n="references.ackoff">Ackoff, R. L. (1989). From data to wisdom. Journal of Applied Systems Analysis, 16(1), 3-9.</span> | ||
| <a target="_blank" rel="noopener noreferrer" href="https://faculty.ung.edu/kmelton/documents/datawisdom.pdf">https://faculty.ung.edu/kmelton/documents/datawisdom.pdf</a> | ||
| <a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://faculty.ung.edu/kmelton/documents/datawisdom.pdf">https://faculty.ung.edu/kmelton/documents/datawisdom.pdf</a> | ||
| </li> | ||
| <li> | ||
| <span data-i18n="references.baskarada">Baskarada, S., & Koronios, A. (2013). Data, information, knowledge, wisdom (DIKW): A semiotic theoretical and empirical exploration of the hierarchy and its quality dimension. Australasian Journal of Information Systems, 18(1).</span> | ||
| <a target="_blank" rel="noopener noreferrer" href="https://doi.org/10.3127/ajis.v18i1.748">https://doi.org/10.3127/ajis.v18i1.748</a> | ||
| <a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://doi.org/10.3127/ajis.v18i1.748">https://doi.org/10.3127/ajis.v18i1.748</a> | ||
| </li> | ||
| <li> | ||
| <span data-i18n="references.fricke">Frické, M. (2009). The knowledge pyramid: A critique of the DIKW hierarchy. Journal of Information Science, 35(2), 131-142.</span> | ||
| <a target="_blank" rel="noopener noreferrer" href="https://doi.org/10.1177/0165551508094050">https://doi.org/10.1177/0165551508094050</a> | ||
| <a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://doi.org/10.1177/0165551508094050">https://doi.org/10.1177/0165551508094050</a> | ||
| </li> | ||
| <li> | ||
| <span data-i18n="references.brienza">Brienza, J. P., Kung, F. Y. H., Santos, H. C., Bobocel, D. R., & Grossmann, I. (2018). Wisdom, bias, and balance: Toward a process-sensitive measurement of wisdom-related cognition. Journal of Personality and Social Psychology, 115(6), 1093-1126.</span> | ||
| <a target="_blank" rel="noopener noreferrer" href="https://doi.org/10.1037/pspp0000171">https://doi.org/10.1037/pspp0000171</a> | ||
| <a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://doi.org/10.1037/pspp0000171">https://doi.org/10.1037/pspp0000171</a> | ||
| </li> | ||
| </ol> | ||
| </section> | ||
|
|
@@ -327,39 +327,39 @@ <h2 data-i18n="projects.title">공개 프로젝트</h2> | |
| </div> | ||
| <div class="naruon-grid project-grid"> | ||
| <article> | ||
| <h3><a target="_blank" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/naruon" data-i18n="projects.naruonTitle">Naruon</a></h3> | ||
| <h3><a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/naruon" data-i18n="projects.naruonTitle">Naruon</a></h3> | ||
| <p data-i18n="projects.naruonBody">메일, 첨부, 일정, 작업을 맥락으로 묶어 판단과 실행으로 연결하는 AI 이메일 워크스페이스입니다.</p> | ||
| </article> | ||
| <article> | ||
| <h3><a target="_blank" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/pg-erd-cloud" data-i18n="projects.pgErdTitle">pg-erd-cloud</a></h3> | ||
| <h3><a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/pg-erd-cloud" data-i18n="projects.pgErdTitle">pg-erd-cloud</a></h3> | ||
| <p data-i18n="projects.pgErdBody">PostgreSQL 스키마를 리버스 엔지니어링하고 ERD와 DDL 공유 흐름으로 관리하는 클라우드 MVP입니다.</p> | ||
| </article> | ||
| <article> | ||
| <h3><a target="_blank" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/bandscope" data-i18n="projects.bandscopeTitle">BandScope</a></h3> | ||
| <h3><a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/bandscope" data-i18n="projects.bandscopeTitle">BandScope</a></h3> | ||
| <p data-i18n="projects.bandscopeBody">곡을 섹션, 역할, 템포, 연습 우선순위로 분석하는 로컬 우선 리허설 앱입니다.</p> | ||
| </article> | ||
| <article> | ||
| <h3><a target="_blank" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/codec-carver" data-i18n="projects.codecCarverTitle">codec-carver</a></h3> | ||
| <h3><a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/codec-carver" data-i18n="projects.codecCarverTitle">codec-carver</a></h3> | ||
| <p data-i18n="projects.codecCarverBody">긴 녹음을 메타데이터를 보존한 FLAC/Opus 조각으로 변환하는 Python CLI입니다.</p> | ||
| </article> | ||
| <article> | ||
| <h3><a target="_blank" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/newsdom-api" data-i18n="projects.newsdomTitle">newsdom-api</a></h3> | ||
| <h3><a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/newsdom-api" data-i18n="projects.newsdomTitle">newsdom-api</a></h3> | ||
| <p data-i18n="projects.newsdomBody">스캔된 일본어 신문 PDF를 기사, 제목, 본문, 이미지 구조의 DOM형 JSON으로 파싱하는 API입니다.</p> | ||
| </article> | ||
| <article> | ||
| <h3><a target="_blank" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/scopeweave" data-i18n="projects.scopeweaveTitle">scopeweave</a></h3> | ||
| <h3><a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/scopeweave" data-i18n="projects.scopeweaveTitle">scopeweave</a></h3> | ||
| <p data-i18n="projects.scopeweaveBody">트리 편집, 진행률 계산, CSV/JSON, 주간 Gantt를 지원하는 정적 HTML/CSS/JS WBS 플래너입니다.</p> | ||
| </article> | ||
| <article> | ||
| <h3><a target="_blank" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/VibeSec" data-i18n="projects.vibesecTitle">VibeSec</a></h3> | ||
| <h3><a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/VibeSec" data-i18n="projects.vibesecTitle">VibeSec</a></h3> | ||
| <p data-i18n="projects.vibesecBody">바이브코딩 앱을 위한 보안 가드레일입니다. AI 개발 도구 규칙, 정적 점검, 리뷰와 수정 프롬프트를 다룹니다.</p> | ||
| </article> | ||
| <article> | ||
| <h3><a target="_blank" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/fast-mlsirm" data-i18n="projects.fastMlsirmTitle">fast-mlsirm</a></h3> | ||
| <h3><a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/fast-mlsirm" data-i18n="projects.fastMlsirmTitle">fast-mlsirm</a></h3> | ||
| <p data-i18n="projects.fastMlsirmBody">MLSIRM/MLS2PLM 모형의 시뮬레이션, 적합, 복원 진단을 빠르게 수행하는 Python/Rust 패키지입니다.</p> | ||
| </article> | ||
| <article> | ||
| <h3><a target="_blank" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/waf-ids-ai-soc" data-i18n="projects.wafIdsTitle">waf-ids-ai-soc</a></h3> | ||
| <h3><a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://github.com/ContextualWisdomLab/waf-ids-ai-soc" data-i18n="projects.wafIdsTitle">waf-ids-ai-soc</a></h3> | ||
| <p data-i18n="projects.wafIdsBody">DNSBL 게시 기능을 갖춘 Rust 우선 WAF/IDS/AI SOC 게이트웨이입니다.</p> | ||
| </article> | ||
| </div> | ||
|
|
@@ -431,7 +431,7 @@ <h2 data-i18n="work.title">연구에서 제품으로</h2> | |
| > | ||
| <p> | ||
| <span data-i18n="footer.founded">Founded by</span> | ||
| <a target="_blank" rel="noopener noreferrer" href="https://github.com/seonghobae">Seongho Bae</a>. | ||
| <a target="_blank" title="새 창에서 열림" data-i18n-title="common.newWindow" rel="noopener noreferrer" href="https://github.com/seonghobae">Seongho Bae</a>. | ||
| <span data-i18n="footer.line">Context into judgment. Judgment into action.</span> | ||
| </p> | ||
| </footer> | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟡 New-window warning remains inaccessible
Every external link puts its warning only in
title, which touch and keyboard users cannot reliably access. Screen readers also omit it inconsistently.Prompt for agents
Was this helpful? React with 👍 or 👎 to provide feedback.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
유효 finding으로 재검증했습니다. exact head
39a055ed6e5b358f5795ec18eb25244185898c25은 Draft이며 아직 source GREEN이 아닙니다.d72897628bee1da73c0ed1cdd63ffa8500b75e9e에서test_i18n.html이 실제index.html을 fetch/parse해 모든target="_blank"링크가aria-describedby로 현지화된common.newWindow설명을 참조해야 한다는 RED를 추가했습니다. 현재 title-only markup은 이 계약을 실패해야 합니다. W3C G200/G201은 새 창 사전 경고를 advisory good practice로 설명하고, WAI-ARIA APG는title이 pointer-hover 없이는 잘 발견되지 않는다고 명시합니다. 최소 GREEN은 KO/EN 설명을 ordinary accessible semantics에 넣고 모든 외부 링크에서 참조시키는 것입니다. exact-head keyboard/touch/accessibility-tree/browser evidence 전에는 이 thread를 resolve하지 않겠습니다.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Understood. The implementation has been corrected to use
aria-describedbylinking to a single localized visually-hidden text span with thecommon.newWindowwarning. I also confirmed that the custom.visually-hiddenclass is now placed intostyles.csswithout breaking the strict CSP.