{"id":32485283,"url":"https://github.com/gnujoow/a11y-modal-test","last_synced_at":"2026-07-06T19:31:01.515Z","repository":{"id":315710017,"uuid":"1060570049","full_name":"gnujoow/a11y-modal-test","owner":"gnujoow","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-20T06:59:52.000Z","size":577,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-27T04:33:30.466Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gnujoow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-20T06:42:57.000Z","updated_at":"2025-09-20T06:59:55.000Z","dependencies_parsed_at":"2025-09-20T16:00:58.078Z","dependency_job_id":null,"html_url":"https://github.com/gnujoow/a11y-modal-test","commit_stats":null,"previous_names":["gnujoow/a11y-modal-test"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gnujoow/a11y-modal-test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnujoow%2Fa11y-modal-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnujoow%2Fa11y-modal-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnujoow%2Fa11y-modal-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnujoow%2Fa11y-modal-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gnujoow","download_url":"https://codeload.github.com/gnujoow/a11y-modal-test/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnujoow%2Fa11y-modal-test/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35204409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-27T04:20:43.061Z","updated_at":"2026-07-06T19:31:01.495Z","avatar_url":"https://github.com/gnujoow.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![접근성 모달폼](preview.gif)\n\n## 📝 구현 주안점\n\n---\n\n- **Portal 기반의 모달 렌더링**\n  - React Portal을 활용하여 모달을 DOM의 적절한 위치에 렌더링\n  - 컨테이너 독립성을 통한 스타일링 격리\n\n- **Hook 기반 설계**\n  - 재사용 가능한 커스텀 훅을 통한 로직 분리\n  - 선언적 API를 통한 모달 관리\n\n- **확장성 고려**\n  - 새로운 모달 추가 시 contents만 교체하면 되는 구조\n  - 모달 타입별 컴포넌트 관리 시스템\n\n## 💡 새롭게 알게된 점\n\n---\n\n- **접근성(a11y) 속성들**\n  - `aria-modal`, `aria-labelledby`, `aria-describedby` 등의 ARIA 속성\n  - 스크린리더 사용자를 위한 적절한 시맨틱 마크업\n  - 포커스 관리와 키보드 네비게이션\n\n- **CSS 속성들**\n  - `pointer-events`: 요소의 마우스 이벤트 제어\n  - `prefers-reduced-motion`: 사용자의 애니메이션 선호도 감지\n\n## 😔 아쉬운 점\n\n---\n\n- **스타일링 부족**\n  - 기능 구현에 집중하느라 시각적 완성도가 부족\n  - 더 나은 UI/UX 디자인 적용 필요\n\n- **설계의 아쉬움**\n  - 초기 설계부터 체계적으로 접근했어야 함\n  - 2시간이라는 시간이 생각보다 짧아 완성도 높은 구현에 한계\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnujoow%2Fa11y-modal-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgnujoow%2Fa11y-modal-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnujoow%2Fa11y-modal-test/lists"}