fix(ui): preserve Astryx List accessible names - #2225

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label
Aug 5, 2026
Merged

fix(ui): preserve Astryx List accessible names#2225
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label

Conversation

@me2seeks

Copy link
Copy Markdown
Contributor

Closes#2189

Summary

  • fix the patched Astryx List seam so aria-label is forwarded to the root ul/ol
  • preserve the existing aria-labelledby behavior for headered lists
  • add a regression test for runtime accessible-name rendering
  • update patch docs to reflect the additional seam expectation

Why

@astryxdesign/coreList accepts aria-label by type, but at runtime it was dropped, leaving several desktop lists without accessible names.

Validation

  • Added focused regression coverage in UI tests
  • Rebuilt and validated patch application workflow with existing Astryx patch docs
  • No visible UI/API surface change except accessible-name output

Impact

  • Accessibility improves for 6 existing list call sites in Desktop
  • No layout/behavior change for sighted users
中文

关闭 #2189

概要

  • 修复 Astryx List 的补丁缝,使 aria-label 能正确透传到根 ul/ol
  • 保持已有 header 时的 aria-labelledby 行为不变
  • 补充运行时可访问名称回归测试
  • 补充 patches/README.md 中的说明

原因

@astryxdesign/coreList 类型层支持 aria-label,但运行时未转发,导致桌面端 6 个列表在无障碍里没有可访问名称。

验证

  • 新增专项回归测试
  • 已保持现有 Astryx 补丁应用链路与文档一致
  • 除了可访问性属性外,不改变页面可视化行为

影响

  • 提升桌面端 6 处列表的可访问性
  • 对可见 UI 无影响

@Astro-Han

Copy link
Copy Markdown
Contributor

Thanks for this — the patch is minimal and correctly targeted, and I verified it end to end: git apply --check passes against a pristine @astryxdesign/core@0.2.0, the two added lines close exactly the runtime gap (aria-label was already in the accepted type but silently dropped by the fixed-props destructuring), and aria-label={undefined} renders no attribute at all, so no stray empty label appears. The test is a genuine guard: it fails both ways against the unpatched package and passes with the patch, and the useId value is captured rather than hard-coded, so it's deterministic.

Two non-blocking notes:

  • patches/README.md now has a second append point shared with fix(desktop): clear "New messages" indicator at bottom and per conversation (#2205) #2211 (both PRs insert after the same final line). The patch file itself auto-merges cleanly; whichever PR merges second just needs to resolve the README conflict by keeping both sections. Worth a heads-up to each other or a one-line "merge order" note.
  • Cosmetic: the test file says npm --workspace @maka/ui test while the README section says npm --workspace @maka/ui run test — both work, but one spelling would be nicer.

Nothing blocking — happy to approve.

@Astro-Han
Astro-Han merged commit 6a43035 into apache:mainAug 5, 2026
12 checks passed
cat0825 added a commit to cat0825/maka-agent that referenced this pull request Aug 5, 2026
Resolve patches/README.md conflict by keeping both sections:
- our apache#2205 "New messages" indicator section
- upstream apache#2225 Astryx List accessible-name section
Verified the merged @astryxdesign/core patch still applies cleanly
via patch-package --error-on-fail.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(ui): Astryx List silently drops aria-label, leaving six lists unnamed

2 participants

@me2seeks@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(ui): preserve Astryx List accessible names - #2225

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label
Aug 5, 2026
Merged

fix(ui): preserve Astryx List accessible names#2225
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label

Conversation

@me2seeks

Copy link
Copy Markdown
Contributor

Closes#2189

Summary

  • fix the patched Astryx List seam so aria-label is forwarded to the root ul/ol
  • preserve the existing aria-labelledby behavior for headered lists
  • add a regression test for runtime accessible-name rendering
  • update patch docs to reflect the additional seam expectation

Why

@astryxdesign/coreList accepts aria-label by type, but at runtime it was dropped, leaving several desktop lists without accessible names.

Validation

  • Added focused regression coverage in UI tests
  • Rebuilt and validated patch application workflow with existing Astryx patch docs
  • No visible UI/API surface change except accessible-name output

Impact

  • Accessibility improves for 6 existing list call sites in Desktop
  • No layout/behavior change for sighted users
中文

关闭 #2189

概要

  • 修复 Astryx List 的补丁缝,使 aria-label 能正确透传到根 ul/ol
  • 保持已有 header 时的 aria-labelledby 行为不变
  • 补充运行时可访问名称回归测试
  • 补充 patches/README.md 中的说明

原因

@astryxdesign/coreList 类型层支持 aria-label,但运行时未转发,导致桌面端 6 个列表在无障碍里没有可访问名称。

验证

  • 新增专项回归测试
  • 已保持现有 Astryx 补丁应用链路与文档一致
  • 除了可访问性属性外,不改变页面可视化行为

影响

  • 提升桌面端 6 处列表的可访问性
  • 对可见 UI 无影响

@Astro-Han

Copy link
Copy Markdown
Contributor

Thanks for this — the patch is minimal and correctly targeted, and I verified it end to end: git apply --check passes against a pristine @astryxdesign/core@0.2.0, the two added lines close exactly the runtime gap (aria-label was already in the accepted type but silently dropped by the fixed-props destructuring), and aria-label={undefined} renders no attribute at all, so no stray empty label appears. The test is a genuine guard: it fails both ways against the unpatched package and passes with the patch, and the useId value is captured rather than hard-coded, so it's deterministic.

Two non-blocking notes:

  • patches/README.md now has a second append point shared with fix(desktop): clear "New messages" indicator at bottom and per conversation (#2205) #2211 (both PRs insert after the same final line). The patch file itself auto-merges cleanly; whichever PR merges second just needs to resolve the README conflict by keeping both sections. Worth a heads-up to each other or a one-line "merge order" note.
  • Cosmetic: the test file says npm --workspace @maka/ui test while the README section says npm --workspace @maka/ui run test — both work, but one spelling would be nicer.

Nothing blocking — happy to approve.

@Astro-Han
Astro-Han merged commit 6a43035 into apache:mainAug 5, 2026
12 checks passed
cat0825 added a commit to cat0825/maka-agent that referenced this pull request Aug 5, 2026
Resolve patches/README.md conflict by keeping both sections:
- our apache#2205 "New messages" indicator section
- upstream apache#2225 Astryx List accessible-name section
Verified the merged @astryxdesign/core patch still applies cleanly
via patch-package --error-on-fail.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(ui): Astryx List silently drops aria-label, leaving six lists unnamed

2 participants

@me2seeks@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(ui): preserve Astryx List accessible names - #2225

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label
Aug 5, 2026
Merged

fix(ui): preserve Astryx List accessible names#2225
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label

Conversation

@me2seeks

Copy link
Copy Markdown
Contributor

Closes#2189

Summary

  • fix the patched Astryx List seam so aria-label is forwarded to the root ul/ol
  • preserve the existing aria-labelledby behavior for headered lists
  • add a regression test for runtime accessible-name rendering
  • update patch docs to reflect the additional seam expectation

Why

@astryxdesign/coreList accepts aria-label by type, but at runtime it was dropped, leaving several desktop lists without accessible names.

Validation

  • Added focused regression coverage in UI tests
  • Rebuilt and validated patch application workflow with existing Astryx patch docs
  • No visible UI/API surface change except accessible-name output

Impact

  • Accessibility improves for 6 existing list call sites in Desktop
  • No layout/behavior change for sighted users
中文

关闭 #2189

概要

  • 修复 Astryx List 的补丁缝,使 aria-label 能正确透传到根 ul/ol
  • 保持已有 header 时的 aria-labelledby 行为不变
  • 补充运行时可访问名称回归测试
  • 补充 patches/README.md 中的说明

原因

@astryxdesign/coreList 类型层支持 aria-label,但运行时未转发,导致桌面端 6 个列表在无障碍里没有可访问名称。

验证

  • 新增专项回归测试
  • 已保持现有 Astryx 补丁应用链路与文档一致
  • 除了可访问性属性外,不改变页面可视化行为

影响

  • 提升桌面端 6 处列表的可访问性
  • 对可见 UI 无影响

@Astro-Han

Copy link
Copy Markdown
Contributor

Thanks for this — the patch is minimal and correctly targeted, and I verified it end to end: git apply --check passes against a pristine @astryxdesign/core@0.2.0, the two added lines close exactly the runtime gap (aria-label was already in the accepted type but silently dropped by the fixed-props destructuring), and aria-label={undefined} renders no attribute at all, so no stray empty label appears. The test is a genuine guard: it fails both ways against the unpatched package and passes with the patch, and the useId value is captured rather than hard-coded, so it's deterministic.

Two non-blocking notes:

  • patches/README.md now has a second append point shared with fix(desktop): clear "New messages" indicator at bottom and per conversation (#2205) #2211 (both PRs insert after the same final line). The patch file itself auto-merges cleanly; whichever PR merges second just needs to resolve the README conflict by keeping both sections. Worth a heads-up to each other or a one-line "merge order" note.
  • Cosmetic: the test file says npm --workspace @maka/ui test while the README section says npm --workspace @maka/ui run test — both work, but one spelling would be nicer.

Nothing blocking — happy to approve.

@Astro-Han
Astro-Han merged commit 6a43035 into apache:mainAug 5, 2026
12 checks passed
cat0825 added a commit to cat0825/maka-agent that referenced this pull request Aug 5, 2026
Resolve patches/README.md conflict by keeping both sections:
- our apache#2205 "New messages" indicator section
- upstream apache#2225 Astryx List accessible-name section
Verified the merged @astryxdesign/core patch still applies cleanly
via patch-package --error-on-fail.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(ui): Astryx List silently drops aria-label, leaving six lists unnamed

2 participants

@me2seeks@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(ui): preserve Astryx List accessible names - #2225

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label
Aug 5, 2026
Merged

fix(ui): preserve Astryx List accessible names#2225
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label

Conversation

@me2seeks

Copy link
Copy Markdown
Contributor

Closes#2189

Summary

  • fix the patched Astryx List seam so aria-label is forwarded to the root ul/ol
  • preserve the existing aria-labelledby behavior for headered lists
  • add a regression test for runtime accessible-name rendering
  • update patch docs to reflect the additional seam expectation

Why

@astryxdesign/coreList accepts aria-label by type, but at runtime it was dropped, leaving several desktop lists without accessible names.

Validation

  • Added focused regression coverage in UI tests
  • Rebuilt and validated patch application workflow with existing Astryx patch docs
  • No visible UI/API surface change except accessible-name output

Impact

  • Accessibility improves for 6 existing list call sites in Desktop
  • No layout/behavior change for sighted users
中文

关闭 #2189

概要

  • 修复 Astryx List 的补丁缝,使 aria-label 能正确透传到根 ul/ol
  • 保持已有 header 时的 aria-labelledby 行为不变
  • 补充运行时可访问名称回归测试
  • 补充 patches/README.md 中的说明

原因

@astryxdesign/coreList 类型层支持 aria-label,但运行时未转发,导致桌面端 6 个列表在无障碍里没有可访问名称。

验证

  • 新增专项回归测试
  • 已保持现有 Astryx 补丁应用链路与文档一致
  • 除了可访问性属性外,不改变页面可视化行为

影响

  • 提升桌面端 6 处列表的可访问性
  • 对可见 UI 无影响

@Astro-Han

Copy link
Copy Markdown
Contributor

Thanks for this — the patch is minimal and correctly targeted, and I verified it end to end: git apply --check passes against a pristine @astryxdesign/core@0.2.0, the two added lines close exactly the runtime gap (aria-label was already in the accepted type but silently dropped by the fixed-props destructuring), and aria-label={undefined} renders no attribute at all, so no stray empty label appears. The test is a genuine guard: it fails both ways against the unpatched package and passes with the patch, and the useId value is captured rather than hard-coded, so it's deterministic.

Two non-blocking notes:

  • patches/README.md now has a second append point shared with fix(desktop): clear "New messages" indicator at bottom and per conversation (#2205) #2211 (both PRs insert after the same final line). The patch file itself auto-merges cleanly; whichever PR merges second just needs to resolve the README conflict by keeping both sections. Worth a heads-up to each other or a one-line "merge order" note.
  • Cosmetic: the test file says npm --workspace @maka/ui test while the README section says npm --workspace @maka/ui run test — both work, but one spelling would be nicer.

Nothing blocking — happy to approve.

@Astro-Han
Astro-Han merged commit 6a43035 into apache:mainAug 5, 2026
12 checks passed
cat0825 added a commit to cat0825/maka-agent that referenced this pull request Aug 5, 2026
Resolve patches/README.md conflict by keeping both sections:
- our apache#2205 "New messages" indicator section
- upstream apache#2225 Astryx List accessible-name section
Verified the merged @astryxdesign/core patch still applies cleanly
via patch-package --error-on-fail.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(ui): Astryx List silently drops aria-label, leaving six lists unnamed

2 participants

@me2seeks@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(ui): preserve Astryx List accessible names - #2225

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label
Aug 5, 2026
Merged

fix(ui): preserve Astryx List accessible names#2225
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label

Conversation

@me2seeks

Copy link
Copy Markdown
Contributor

Closes#2189

Summary

  • fix the patched Astryx List seam so aria-label is forwarded to the root ul/ol
  • preserve the existing aria-labelledby behavior for headered lists
  • add a regression test for runtime accessible-name rendering
  • update patch docs to reflect the additional seam expectation

Why

@astryxdesign/coreList accepts aria-label by type, but at runtime it was dropped, leaving several desktop lists without accessible names.

Validation

  • Added focused regression coverage in UI tests
  • Rebuilt and validated patch application workflow with existing Astryx patch docs
  • No visible UI/API surface change except accessible-name output

Impact

  • Accessibility improves for 6 existing list call sites in Desktop
  • No layout/behavior change for sighted users
中文

关闭 #2189

概要

  • 修复 Astryx List 的补丁缝,使 aria-label 能正确透传到根 ul/ol
  • 保持已有 header 时的 aria-labelledby 行为不变
  • 补充运行时可访问名称回归测试
  • 补充 patches/README.md 中的说明

原因

@astryxdesign/coreList 类型层支持 aria-label,但运行时未转发,导致桌面端 6 个列表在无障碍里没有可访问名称。

验证

  • 新增专项回归测试
  • 已保持现有 Astryx 补丁应用链路与文档一致
  • 除了可访问性属性外,不改变页面可视化行为

影响

  • 提升桌面端 6 处列表的可访问性
  • 对可见 UI 无影响

@Astro-Han

Copy link
Copy Markdown
Contributor

Thanks for this — the patch is minimal and correctly targeted, and I verified it end to end: git apply --check passes against a pristine @astryxdesign/core@0.2.0, the two added lines close exactly the runtime gap (aria-label was already in the accepted type but silently dropped by the fixed-props destructuring), and aria-label={undefined} renders no attribute at all, so no stray empty label appears. The test is a genuine guard: it fails both ways against the unpatched package and passes with the patch, and the useId value is captured rather than hard-coded, so it's deterministic.

Two non-blocking notes:

  • patches/README.md now has a second append point shared with fix(desktop): clear "New messages" indicator at bottom and per conversation (#2205) #2211 (both PRs insert after the same final line). The patch file itself auto-merges cleanly; whichever PR merges second just needs to resolve the README conflict by keeping both sections. Worth a heads-up to each other or a one-line "merge order" note.
  • Cosmetic: the test file says npm --workspace @maka/ui test while the README section says npm --workspace @maka/ui run test — both work, but one spelling would be nicer.

Nothing blocking — happy to approve.

@Astro-Han
Astro-Han merged commit 6a43035 into apache:mainAug 5, 2026
12 checks passed
cat0825 added a commit to cat0825/maka-agent that referenced this pull request Aug 5, 2026
Resolve patches/README.md conflict by keeping both sections:
- our apache#2205 "New messages" indicator section
- upstream apache#2225 Astryx List accessible-name section
Verified the merged @astryxdesign/core patch still applies cleanly
via patch-package --error-on-fail.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(ui): Astryx List silently drops aria-label, leaving six lists unnamed

2 participants

@me2seeks@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(ui): preserve Astryx List accessible names - #2225

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label
Aug 5, 2026
Merged

fix(ui): preserve Astryx List accessible names#2225
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label

Conversation

@me2seeks

Copy link
Copy Markdown
Contributor

Closes#2189

Summary

  • fix the patched Astryx List seam so aria-label is forwarded to the root ul/ol
  • preserve the existing aria-labelledby behavior for headered lists
  • add a regression test for runtime accessible-name rendering
  • update patch docs to reflect the additional seam expectation

Why

@astryxdesign/coreList accepts aria-label by type, but at runtime it was dropped, leaving several desktop lists without accessible names.

Validation

  • Added focused regression coverage in UI tests
  • Rebuilt and validated patch application workflow with existing Astryx patch docs
  • No visible UI/API surface change except accessible-name output

Impact

  • Accessibility improves for 6 existing list call sites in Desktop
  • No layout/behavior change for sighted users
中文

关闭 #2189

概要

  • 修复 Astryx List 的补丁缝,使 aria-label 能正确透传到根 ul/ol
  • 保持已有 header 时的 aria-labelledby 行为不变
  • 补充运行时可访问名称回归测试
  • 补充 patches/README.md 中的说明

原因

@astryxdesign/coreList 类型层支持 aria-label,但运行时未转发,导致桌面端 6 个列表在无障碍里没有可访问名称。

验证

  • 新增专项回归测试
  • 已保持现有 Astryx 补丁应用链路与文档一致
  • 除了可访问性属性外,不改变页面可视化行为

影响

  • 提升桌面端 6 处列表的可访问性
  • 对可见 UI 无影响

@Astro-Han

Copy link
Copy Markdown
Contributor

Thanks for this — the patch is minimal and correctly targeted, and I verified it end to end: git apply --check passes against a pristine @astryxdesign/core@0.2.0, the two added lines close exactly the runtime gap (aria-label was already in the accepted type but silently dropped by the fixed-props destructuring), and aria-label={undefined} renders no attribute at all, so no stray empty label appears. The test is a genuine guard: it fails both ways against the unpatched package and passes with the patch, and the useId value is captured rather than hard-coded, so it's deterministic.

Two non-blocking notes:

  • patches/README.md now has a second append point shared with fix(desktop): clear "New messages" indicator at bottom and per conversation (#2205) #2211 (both PRs insert after the same final line). The patch file itself auto-merges cleanly; whichever PR merges second just needs to resolve the README conflict by keeping both sections. Worth a heads-up to each other or a one-line "merge order" note.
  • Cosmetic: the test file says npm --workspace @maka/ui test while the README section says npm --workspace @maka/ui run test — both work, but one spelling would be nicer.

Nothing blocking — happy to approve.

@Astro-Han
Astro-Han merged commit 6a43035 into apache:mainAug 5, 2026
12 checks passed
cat0825 added a commit to cat0825/maka-agent that referenced this pull request Aug 5, 2026
Resolve patches/README.md conflict by keeping both sections:
- our apache#2205 "New messages" indicator section
- upstream apache#2225 Astryx List accessible-name section
Verified the merged @astryxdesign/core patch still applies cleanly
via patch-package --error-on-fail.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(ui): Astryx List silently drops aria-label, leaving six lists unnamed

2 participants

@me2seeks@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(ui): preserve Astryx List accessible names - #2225

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label
Aug 5, 2026
Merged

fix(ui): preserve Astryx List accessible names#2225
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label

Conversation

@me2seeks

Copy link
Copy Markdown
Contributor

Closes#2189

Summary

  • fix the patched Astryx List seam so aria-label is forwarded to the root ul/ol
  • preserve the existing aria-labelledby behavior for headered lists
  • add a regression test for runtime accessible-name rendering
  • update patch docs to reflect the additional seam expectation

Why

@astryxdesign/coreList accepts aria-label by type, but at runtime it was dropped, leaving several desktop lists without accessible names.

Validation

  • Added focused regression coverage in UI tests
  • Rebuilt and validated patch application workflow with existing Astryx patch docs
  • No visible UI/API surface change except accessible-name output

Impact

  • Accessibility improves for 6 existing list call sites in Desktop
  • No layout/behavior change for sighted users
中文

关闭 #2189

概要

  • 修复 Astryx List 的补丁缝,使 aria-label 能正确透传到根 ul/ol
  • 保持已有 header 时的 aria-labelledby 行为不变
  • 补充运行时可访问名称回归测试
  • 补充 patches/README.md 中的说明

原因

@astryxdesign/coreList 类型层支持 aria-label,但运行时未转发,导致桌面端 6 个列表在无障碍里没有可访问名称。

验证

  • 新增专项回归测试
  • 已保持现有 Astryx 补丁应用链路与文档一致
  • 除了可访问性属性外,不改变页面可视化行为

影响

  • 提升桌面端 6 处列表的可访问性
  • 对可见 UI 无影响

@Astro-Han

Copy link
Copy Markdown
Contributor

Thanks for this — the patch is minimal and correctly targeted, and I verified it end to end: git apply --check passes against a pristine @astryxdesign/core@0.2.0, the two added lines close exactly the runtime gap (aria-label was already in the accepted type but silently dropped by the fixed-props destructuring), and aria-label={undefined} renders no attribute at all, so no stray empty label appears. The test is a genuine guard: it fails both ways against the unpatched package and passes with the patch, and the useId value is captured rather than hard-coded, so it's deterministic.

Two non-blocking notes:

  • patches/README.md now has a second append point shared with fix(desktop): clear "New messages" indicator at bottom and per conversation (#2205) #2211 (both PRs insert after the same final line). The patch file itself auto-merges cleanly; whichever PR merges second just needs to resolve the README conflict by keeping both sections. Worth a heads-up to each other or a one-line "merge order" note.
  • Cosmetic: the test file says npm --workspace @maka/ui test while the README section says npm --workspace @maka/ui run test — both work, but one spelling would be nicer.

Nothing blocking — happy to approve.

@Astro-Han
Astro-Han merged commit 6a43035 into apache:mainAug 5, 2026
12 checks passed
cat0825 added a commit to cat0825/maka-agent that referenced this pull request Aug 5, 2026
Resolve patches/README.md conflict by keeping both sections:
- our apache#2205 "New messages" indicator section
- upstream apache#2225 Astryx List accessible-name section
Verified the merged @astryxdesign/core patch still applies cleanly
via patch-package --error-on-fail.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(ui): Astryx List silently drops aria-label, leaving six lists unnamed

2 participants

@me2seeks@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(ui): preserve Astryx List accessible names - #2225

Merged
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label
Aug 5, 2026
Merged

fix(ui): preserve Astryx List accessible names#2225
Astro-Han merged 1 commit into
apache:mainfrom
me2seeks:fix/2189-astryx-list-aria-label

Conversation

@me2seeks

Copy link
Copy Markdown
Contributor

Closes#2189

Summary

  • fix the patched Astryx List seam so aria-label is forwarded to the root ul/ol
  • preserve the existing aria-labelledby behavior for headered lists
  • add a regression test for runtime accessible-name rendering
  • update patch docs to reflect the additional seam expectation

Why

@astryxdesign/coreList accepts aria-label by type, but at runtime it was dropped, leaving several desktop lists without accessible names.

Validation

  • Added focused regression coverage in UI tests
  • Rebuilt and validated patch application workflow with existing Astryx patch docs
  • No visible UI/API surface change except accessible-name output

Impact

  • Accessibility improves for 6 existing list call sites in Desktop
  • No layout/behavior change for sighted users
中文

关闭 #2189

概要

  • 修复 Astryx List 的补丁缝,使 aria-label 能正确透传到根 ul/ol
  • 保持已有 header 时的 aria-labelledby 行为不变
  • 补充运行时可访问名称回归测试
  • 补充 patches/README.md 中的说明

原因

@astryxdesign/coreList 类型层支持 aria-label,但运行时未转发,导致桌面端 6 个列表在无障碍里没有可访问名称。

验证

  • 新增专项回归测试
  • 已保持现有 Astryx 补丁应用链路与文档一致
  • 除了可访问性属性外,不改变页面可视化行为

影响

  • 提升桌面端 6 处列表的可访问性
  • 对可见 UI 无影响

@Astro-Han

Copy link
Copy Markdown
Contributor

Thanks for this — the patch is minimal and correctly targeted, and I verified it end to end: git apply --check passes against a pristine @astryxdesign/core@0.2.0, the two added lines close exactly the runtime gap (aria-label was already in the accepted type but silently dropped by the fixed-props destructuring), and aria-label={undefined} renders no attribute at all, so no stray empty label appears. The test is a genuine guard: it fails both ways against the unpatched package and passes with the patch, and the useId value is captured rather than hard-coded, so it's deterministic.

Two non-blocking notes:

  • patches/README.md now has a second append point shared with fix(desktop): clear "New messages" indicator at bottom and per conversation (#2205) #2211 (both PRs insert after the same final line). The patch file itself auto-merges cleanly; whichever PR merges second just needs to resolve the README conflict by keeping both sections. Worth a heads-up to each other or a one-line "merge order" note.
  • Cosmetic: the test file says npm --workspace @maka/ui test while the README section says npm --workspace @maka/ui run test — both work, but one spelling would be nicer.

Nothing blocking — happy to approve.

@Astro-Han
Astro-Han merged commit 6a43035 into apache:mainAug 5, 2026
12 checks passed
cat0825 added a commit to cat0825/maka-agent that referenced this pull request Aug 5, 2026
Resolve patches/README.md conflict by keeping both sections:
- our apache#2205 "New messages" indicator section
- upstream apache#2225 Astryx List accessible-name section
Verified the merged @astryxdesign/core patch still applies cleanly
via patch-package --error-on-fail.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(ui): Astryx List silently drops aria-label, leaving six lists unnamed

2 participants

@me2seeks@Astro-Han