Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .Jules/palette.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,6 @@
## 2024-06-26 - [Abbreviation Comprehension in ERD Nodes]
**Learning:** Users without deep database administration backgrounds may not immediately recognize domain-specific abbreviations like "PK" or "FK" rendered as minimalist badges inside dense ERD nodes.
**Action:** Always provide `title` attributes on technical acronym badges (like Primary Key / Foreign Key) to ensure clarity and improve accessibility without cluttering the space-constrained node UI.
## 2026-07-06 - Semantic Tags for Technical Badges
**Learning:** In accessibility optimization tasks, injecting unsanitized data (e.g. `col.column_name`) directly into DOM attributes (like `aria-label`) within sensitive editing components (like `EditTableModal.tsx`) can inadvertently trigger XSS security scanners and CI blockades in strict environments like STRIX. Additionally, non-semantic elements like `<span>` can have their `aria-label` dropped by assistive technologies.
**Action:** When working on isolated UX fixes in highly secured repos, avoid touching data-binding inside sensitive inputs. Instead, focus on purely semantic upgrades in isolated display components (e.g., swapping `<span>` for `<abbr>` in `TableNode.tsx`) to ensure accessibility attributes are reliably announced without crossing trust boundaries.
4 changes: 2 additions & 2 deletions frontend/src/erd/TableNode.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -158,9 +158,9 @@ function TableNode(props: NodeProps<TableNodeNode>) {
</abbr>
) : null}
{c.is_not_null ? (
<span className="tableNode__badge" title="Not Null" aria-label="ν•„μˆ˜ μž…λ ₯ (Not Null)">
<abbr className="tableNode__badge" title="Not Null" aria-label="ν•„μˆ˜ μž…λ ₯ (Not Null)">
NOT NULL
</span>
</abbr>
) : null}
<Handle
type="source"
Expand Down
Loading