기타 Lobsters · 2026-10-23

"제발 링크 가지고 장난 좀 치지 마세요" 웹 개발자들의 만행에 분통 터진 글

핵심 요약
  • 링크처럼 꾸민 자바스크립트 버튼이나 커스텀 팝업이 브라우저의 기본 기능(새 탭 열기, URL 복사, 키보드 탐색, 스크린 리더 인식 등)을 완전히 망가뜨리고 있다는 비판이 제기되었습니다.
  • 제작자가 굳이 자체 팝업이나 로딩 스피너를 만들다 전체 탭을 끄게 만들거나 느린 환경에서 원본 글조차 못 읽게 가려버리는 등 사용자 경험을 심각하게 해친다고 지적했습니다.
  • 무한 스크롤, 자체 날짜 선택기, 과도한 JS 프레임워크 남용 대신 브라우저에 이미 내장된 표준 HTML 기능을 활용할 것을 촉구했습니다.
요약 웹 서핑을 하다 보면 텍스트에 밑줄 긋고 파란색을 칠해 링크처럼 꾸며놓고는, 실제로는 자바스크립트 클릭 이벤트(`window.location` 등)로 이동하게 만든 사이트들을 심심찮게 볼 수 있습니다. 겉보기에는 일반 링크처럼 작동하는 것 같지만, 이는 웹 브라우저의 기본 기능을 파괴하는 조잡한 흉내내기에 불과하다고 한 개발자가 분통을 터뜨렸습니다. 진짜 HTML 링크(`<a>` 태그)라면 브라우저의 온갖 기본 기능을 그대로 활용할 수 있습니다. 마우스 오른쪽 클릭으로 주소를 복사하거나, 마우스를 올려 하단에서 대상 URL을 미리 확인하고, Ctrl 키를 눌러 새 탭에서 열거나 Shift 키로 새 창에서 열 수 있습니다. Alt 키로 링크 대상을 바로 파일로 저장하거나 Tab과 Enter 키를 통한 키보드 탐색도 지원되며, 검색 엔진 크롤러나 시각장애인용 스크린 리더도 정상적으로 인식합니다. 하지만 자바스크립트로 억지로 구현한 가짜 버튼 링크는 이 중 단 하나도 지원하지 못합니다. 링크를 클릭했을 때 브라우저 탭 대신 자체 자바스크립트 팝업창을 띄우는 관행도 비판 대상에 올랐습니다. 정상적인 새 창 링크(`target="_blank"`)를 사용하면 로딩 진행 상황을 확인하거나 취소할 수 있고, 여러 창을 동시에 열어둔 채 기존 페이지를 계속 읽을 수도 있으며, 문제가 생겼을 때 브라우저의 상세한 오류 페이지를 보고 다시 시도할 수 있습니다. 반면 자바스크립트 팝업은 닫으려다 실수로 웹사이트 전체를 닫아버리기 일쑤고, 네트워크가 느리면 무한 로딩 스피너가 화면 전체를 가려 기존 페이지조차 읽지 못하게 만든다는 지적입니다. 글쓴이는 개발자들을 향해 기본 브라우저 기능에 맡기라고 강조했습니다. 링크 대신 자바스크립트 버튼을 남발하지 말고, 링크 미리보기는 클릭이 아닌 마우스 오버로 띄우며, 새 창은 자바스크립트 팝업 대신 `target="_blank"`를 쓰라는 것입니다. 나아가 무한 스크롤(Ctrl+F 검색, 북마크, 뒤로가기 버튼 파괴), 5MB짜리 자바스크립트 프레임워크로 100KB짜리 텍스트 비효율적으로 렌더링하기, 브라우저 내장 기능인 `<details>` 태그나 날짜 선택기(Date Picker)를 굳이 자체 스크립트로 재구현해 접근성을 깨뜨리는 행위 등 웹 생태계의 비효율적인 관행들을 꼬집었습니다.
Sponsored · 광고