diff --git a/.jules/palette.md b/.jules/palette.md index 0bbf5248..e1533424 100644 --- a/.jules/palette.md +++ b/.jules/palette.md @@ -108,10 +108,14 @@ **Learning:** [When an element is removed from the DOM, focus naturally resets to the document body, breaking the keyboard navigation flow. It is critical to calculate the next logical focus target prior to deletion and programmatically restore focus post-render.] **Action:** [In future components involving item deletion within lists or tables, proactively incorporate index calculations before removing items to manage focus restoration correctly.] -## $(date +%Y-%m-%d) - Add Confirmation Dialog for CSV Import +## 2024-05-31 - Add Confirmation Dialog for CSV Import **Learning:** File import actions that completely overwrite existing application state can lead to severe data loss if triggered accidentally. In a WBS planner where users invest significant time building task hierarchies, destructive imports need explicit user confirmation. **Action:** Always add a confirmation dialog (`window.confirm` or custom modal) for any import or sync action that wipes out the current in-memory or persisted state, especially when there's no undo mechanism. -## $(date +%Y-%m-%d) - Prevent accidental data loss in inline editors +## 2024-05-31 - Prevent accidental data loss in inline editors **Learning:** Forms that take a long time to fill out (like a WBS editor) are prone to accidental closure by users pressing `Escape` or clicking cancel. This causes immediate data loss without any warning, resulting in frustration. **Action:** When working on editors that can be dismissed, track whether the user has modified any fields compared to their initial state. If there are changes, intercept the close action and present a confirmation dialog (`window.confirm`) to ensure they really want to discard their edits. Bypass this for intentional saves or explicit data overrides. + +## 2024-05-31 - 모달 닫기 버튼에 키보드 단축키 힌트 추가 +**Learning:** `title` 속성으로만 제공되는 키보드 단축키 힌트는 화면 판독기나 키보드 사용자에게 일관성 있게 전달되지 않는다. +**Action:** `title` 툴팁과 함께 `aria-keyshortcuts` 속성을 사용하여, 마우스와 보조 기술 사용자 모두가 키보드 단축키(예: Escape)를 인지할 수 있도록 구현한다. diff --git a/cloud-sync.js b/cloud-sync.js index 0e015ebe..bb1cffce 100644 --- a/cloud-sync.js +++ b/cloud-sync.js @@ -175,7 +175,7 @@ function ensureAuthUI() {