날짜 선택기를 직접 만들지 말라는 취지에는 공감하며, 모바일에서는 기본 위젯이 대체로 잘 작동함. 데스크톱도 이제 끔찍한 수준은 아니지만, 사용자가 선호하는 날짜 형식을 항상 따른다고 단정하기는 어려움.
시간 형식을 핀란드식으로 설정했는데도 브라우저 두 개 모두 mm/dd/yyyy와 일요일부터 시작하는 달력을 표시함. Firefox에서는 about:config의 intl.regional_prefs.use_os_locales를 바꿔야 OS 설정을 따르게 됨. 브라우저 문제라고 해도 기본 위젯을 쓰면 그 문제까지 물려받으니, 개발자가 직접 제어하려는 이유는 이해됨. 다만 모바일에서는 기본 위젯을 제공해 주길 바람. 다크 모드도 자동으로 지원된다는 설명과 달리, Firefox에서는 사이트를 어두운 테마로 설정해도 날짜 선택기가 흰색으로 표시됨. OS의 밝은 테마 때문일 수 있지만, 일부 사이트만 어둡게 쓰고 싶다면 사이트 디자인과 어긋나는 또 다른 지점이 됨.
<input type="date">가 폭넓게 지원된 것도 2021년 무렵부터라 그리 오래되지 않았음. 아직 많은 웹사이트가 JavaScript 날짜 선택기를 쓰는 이유이기도 함.
Firefox Android의 색상 선택기는 정말 형편없음.
사이트 테마가 아니라 prefers-dark CSS 미디어 선택자를 따르는 것 같음.
실제 <a target="_blank"> 링크라도 같은 탭에서 열기는 할 수 없음. JavaScript로 이상하게 구현한 링크뿐 아니라 target="_blank"도 피하고, 어디에서 열지는 사용자가 선택하게 해 주길 바람.
Firefox에는 target=_blank를 무시하는 설정이 있음. 드물게 일부 사이트가 깨질 수 있고 공식 지원도 아닌 듯하지만, 링크가 어디서 열릴지 항상 알 수 있고 직접 선택할 수 있어서 애용함. https://kevincox.ca/2023/04/…
ActivityPub 소셜 네트워크 Hackers' Pub을 운영하면서 이 논쟁의 반대편에 서게 됨. Mastodon 등 다른 연합우주 서버처럼 원격 게시물의 미러 페이지를 제공하며, 타임라인의 게시 시각은 이 페이지로 연결됨. 우리 계정으로 답글을 달거나 좋아요를 누르려면 미러 페이지에 있어야 하지만, 브라우저의 링크 복사 기능을 쓰면 공유에 적합한 원본 주소 대신 미러 주소가 복사됨.
그래서 href에는 원본 주소를 넣고, onclick에서는 preventDefault()로 미러 페이지에 이동하게 했음. 링크를 복사하면 원본 주소를 얻고, 일반 클릭은 미러로 연결돼 한동안 만족했음.
하지만 바로 글에서 비판하는 방식이었고, 사용자들도 문제를 짚어 줌. Ctrl+클릭이나 가운데 버튼으로 새 탭을 열면 처리기가 실행되지 않아 원격 서버의 원본 페이지로 이동함. 읽기는 가능하지만, 미러를 찾은 이유인 답글과 좋아요는 사용할 수 없게 됨.
아직 깔끔한 해법을 찾지 못했음. 원격 서버가 우리 쪽 계정을 모르는 현재 연합우주의 한계도 있음. 가끔 링크에 복사용 주소와 이동용 주소를 따로 넣을 수 있으면 좋겠지만, 일주일 안에 악용될 것 같아 진지하게 요구하는 기능은 아님.
auxclick 이벤트를 시도해 볼 만하며, 시험용 페이지도 만들어 봤음. https://arsdnet.net/auxclick.html
오른쪽 클릭용 contextmenu 처리기도 넣었지만, 링크 주소를 복사하려는 사용자에게는 원래 목적을 망치므로 빼는 편이 나을 수 있음. Ctrl+클릭과 가운데 클릭은 보통 결과는 같아도 이벤트는 다를 수 있음. 여기서는 Ctrl+클릭은 click, 가운데 클릭은 auxclick, 키보드로 링크를 실행할 때는 click이 발생함.
참고: https://developer.mozilla.org/en-US/docs/….
나도 이런 동작은 좋아하지 않아 예제 주소를 #evil로 지었음. 개인적으로는 로그인 상태에서 이용할 링크 옆에 공유용 링크를 따로 두는 편을 선호하지만, 공간 확보가 어려울 수는 있음.
예제는 preventDefault() 없이 href를 변경함. 이벤트 처리기가 기본 동작보다 먼저 실행되므로, 주소를 바꾼 뒤 기본 동작에 맡기면 #good 대신 #evil로 정상 이동함. 다만 가운데 클릭으로 새 탭을 연 뒤 주소를 복사하면 변경된 주소가 복사됨. 원본 주소를 노드의 다른 속성에 저장하고 blur나 mouseout 때 복원하는 방식도 실험해 볼 만함.
미러 게시물과 원격 게시물의 링크를 따로 표시하면 어떨까? 복잡한 장치도 필요 없고 고급 사용자들이 불편해할 이유도 없어짐.
예전에 이 주제로 쓴 글과 놀랄 만큼 비슷해서 잠깐 베낀 글인가 했지만, 그만큼 흔한 고민이었음. 전반적으로 나아지는 것 같기는 해도, 여전히 새 탭에서 열 수 없는 링크를 너무 자주 마주침.