[Button]: crash on Safari 17 due to missing ElementInternals.states guard in _setBadgeOverlayStyle
メンテナーはふだん 2 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 1/5
- 見積もり時間
- 1時間未満
- 初心者へのやさしさ
- 87/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript, web-dev
調査の方向性
packages/main/src/Button.tsを読み、_setBadgeOverlayStyle()とonBeforeRendering()からの呼び出しを調べてください。プロジェクトでElementInternals.statesのブラウザーサポートをどのように扱っているか確認し、関連するButtonテストを実行するか、Safari 17で再現してください。ボタンがエラーなく描画され、APIがサポートされている環境でバッジの状態が適用されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Bug Description
Button._setBadgeOverlayStyle() unconditionally accesses this._internals.states, which is undefined on Safari 17. This causes an unhandled promise rejection that crashes all UI5 buttons on the page, regardless of whether a badge is used.
Error
TypeError: undefined is not an object (evaluating 'this._internals.states.delete')
Affected Code
packages/main/src/Button.ts → _setBadgeOverlayStyle():
_setBadgeOverlayStyle() {
const needsOverflowVisible = ...;
if (needsOverflowVisible) {
this._internals.states.add("has-overlay-badge"); // crashes
} else {
this._internals.states.delete("has-overlay-badge"); // crashes
}
}
This method is called unconditionally from onBeforeRendering(), so every button render on Safari 17 triggers the crash.
Root Cause
Safari 17 does not support the CSS Custom State API (ElementInternals.states). The property exists on _internals only in browsers that support this API.
Expected Behavior
Buttons render without error on Safari 17. Badge state simply isn't applied (acceptable degradation).
Proposed Fix
this._internals?.states?.add("has-overlay-badge");
this._internals?.states?.delete("has-overlay-badge");
Environment
@ui5/webcomponents: 2.27.2- Browser: Safari 17.0 / macOS Sonoma
- Not reproducible on Chrome or Safari 18+
Affected Component
No response
Expected Behaviour
No response
Isolated Example
No response
Steps to Reproduce
No response
Log Output, Stack Trace or Screenshots
No response
Priority
None
UI5 Web Components Version
2.27.2
Browser
Safari
Operating System
No response
Additional Context
No response
Organization
No response
Declaration
- I’m not disclosing any internal or sensitive information.
- 主要言語
- TypeScript
- スター
- 1.8k
- フォーク
- 290
- 平均マージ
- 2日 14時間
- マージ済み PR(30日)
- 54
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
UI5/webcomponents のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
UI5/webcomponents#14273 ·
メンテナーはふだん 2 日以内に返信
-
[Feature Request][Side Navigation][A11Y]: Enhance user experience navigating components tree items対応中かも @TeodorTaushanov が 5 日前に担当しました。 オープンbug Medium Prio TOPIC RD
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
UI5/webcomponents#14232 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 2 日以内に返信
-
enhancement feature request TOPIC RD
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
UI5/webcomponents#14222 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
[SF][A11y][ui5-select] Conflicting ARIA: role="combobox" rendered with aria-roledescription="Listbox" (confuses screen-reader users)対応中かも @PetyaMarkovaBogdanova が 9 日前に担当しました。 オープンbug Medium Prio TOPIC P
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
UI5/webcomponents#14212 · コメント 2 件 · 担当者 1 名 ·
メンテナーはふだん 2 日以内に返信
-
(ui5-search): Loading state sample is broken対応中かも @ndeshev が 9 日前に担当しました。 オープンbug Low Prio TOPIC RL
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
UI5/webcomponents#14210 · 担当者 1 名 ·
メンテナーはふだん 2 日以内に返信
UI5/webcomponents の issue をすべて見る
似ている issue
-
area:cards enhancement ready-for-agent
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
fil-donadoni/tolaria#8883 ·
メンテナーはふだん 1 日以内に返信
-
xsd:integer cast from a string rejects negative numbers, a leading + and surrounding whitespaceオープンbug 🐛
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
comunica/comunica#1960 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Waiting for: Product Owner
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
getsentry/sentry-javascript#26203 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
bytedance/flowgram.ai#1235 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
devswha/herdr-web-ui#3325 ·