또한, Discourse가 설정에서 "apple touch icon"을 검은색 배경으로 표시하도록 제안합니다. 이를 통해 사이트 관리자가 투명 아이콘을 "apple touch icon"으로 사용했을 때 어떤 일이 발생하는지 더 명확하게 이해할 수 있게 됩니다.
수정: 관리자 설정에서 "apple touch icon"을 둥근 모서리 그리고 검은색 배경으로 표시하는 것이 더 나을 것입니다. 이렇게 하면 사이트 관리자가 이미지에 Apple이 제공하는 모서리 반경이 적용됨을 확인할 수 있습니다. 제가 참여하는 다른 포럼에서는 색상이 있는 테두리가 있는 "apple touch icon"을 사용했는데, Apple이 둥근 모서리를 추가했을 때 당연히 보기 흉해 보였습니다…
사실, Apple은 투명도를 무시하고 둥근 모서리 마스킹을 적용하는 반면, 다른 브라우저는 투명도를 허용하는 Web Manifest 표준을 따르도록 되어 있기 때문에, Discourse가 "manifest icon"과 "apple touch icon"이라는 두 가지 별도의 설정을 가지고 있는 이유가 바로 그것이라고 생각했습니다.
제가 이해한 바로는, https://meta.discourse.org/manifest.webmanifest 파일에 두 개의 아이콘이 제공되고 있는데, 하나는 purpose가 "any"이고 다른 하나는 purpose가 "maskable"입니다. “maskable” 아이콘은 아이콘의 40% 반지름 원형 영역을 잘라내도 괜찮다고 주장하고 있습니다.
다행히도 모든 플랫폼이 준수하는 잘 정의되고 표준화된 "최소 안전 구역(minimum safe zone)"이 있습니다. 로고와 같은 아이콘의 중요한 부분은 아이콘 폭의 40%에 해당하는 반지름을 가진 아이콘 중앙의 원형 영역 내에 있어야 합니다. 바깥쪽 10% 가장자리는 잘릴 수 있습니다.
Chrome DevTools를 사용하여 아이콘의 어떤 부분이 안전 구역 내에 위치하는지 확인할 수 있습니다. Progressive Web App을 열어 DevTools를 실행하고 Application 패널로 이동합니다. Icons 섹션에서 Show only the minimum safe area for maskable icons를 선택할 수 있습니다. 그러면 아이콘이 안전 영역만 보이도록 잘립니다. 로고가 이 안전 영역 내에 보인다면 문제없습니다.
"Show only the minimum safe area for maskable icons"를 체크했을 때 Chrome Dev Tools에서 Meta의 Manifest 패널이 보이는 모습입니다.
아이콘이 maskable로 지정되어 있으므로, Android/Chrome은 중앙에서 원형 조각을 잘라내며 그 결과는 좋지 않습니다.
@Stephen이 "하얀 바다에 묻혀 있다"고 묘사한 Apple Touch 아이콘을 Chrome Dev Tools에서 maskable manifest 아이콘으로 테스트해 보았습니다. 하지만 그 아이콘도 표준 maskable 크기 대비 약간 너무 큽니다… 왼쪽 아래 모서가 잘립니다.
Firefox가 탭 시작 페이지에 어떤 아이콘을 사용하는지에 대한 문서를 찾을 수 있으신가요?
Firefox가 탭 시작 페이지에 매니페스트 아이콘을 사용하지 않는다면, 적어도 <link rel=icon> 아이콘 중 하나를 사용할 것으로 예상했을 것입니다.
아마도 <link rel=icon>이 너무 작기 때문에 Firefox가 apple touch icon으로 폴백(fallback)하는 것일까요?
아시다시피, 여러 sizes 속성을 가진 여러 개의 <link rel=icon> 요소를 가질 수 있습니다. 첫 번째는 favicon을 가리키고, 두 번째는 더 큰 sizes를 가진 매니페스트 아이콘을 가리키는 두 개의 <link rel=icon> 요소를 가지는 것이 합리적일 것 같습니다. 그렇게 하면 Firefox가 더 크고 좋은 아이콘을 사용하게 될 것입니다.
더 광범위하게 말하면, 이 이야기의 교훈은 다음과 같습니다:
어떤 아이콘이 어디에서 왜 사용되는지 파악하는 것은 사실 프로젝트에 가깝습니다.
Discourse 관리자 사이트는 관리자가 이 문제를 올바르게 해결할 수 있도록 충분히 가까운 수준의 안내를 제공하지 않습니다.