"포인터 입력 대상의 크기는 최소 24×24 CSS 픽셀이어야 한다. 단, 다음의 경우는 예외로 한다:" 이것이 예외 조항이 시작되기 전까지 성공 기준 2.5.8 대상 크기(최소)의 전부입니다.1 이 기준은 2024년 12월 12일 W3C 권고안인 WCAG 2.2의 AA 수준에 속하며, 다섯 가지 예외를 둡니다.1 그중 하나인 인라인(Inline) 예외가 문장 안에 있는 광고에 이 규칙이 어떻게 적용되는지를 결정합니다.2 예외 이전에 더 단순한 문제가 있습니다. 휴대폰 독자가 페이지에 가져오는 포인터는 호버를 할 수 없다는 것입니다.

호버는 데스크톱의 이벤트이며, 휴대폰에는 호버가 없습니다

hover 미디어 기능에 관한 MDN 페이지는 이 기능이 "사용자의 주 입력 장치가 요소 위에 호버할 수 있는지"를 검사한다고 말합니다.3 값 "none"은 "호버를 전혀 할 수 없거나 편리하게 할 수 없는" 기기를 포함합니다.3 예로 든 것은 휴대용 기기입니다. "많은 모바일 기기는 사용자가 불편한 길게 누르기를 할 때 호버를 흉내 내며", "none"이 설명하는 것이 바로 그런 흉내입니다.3 밑줄 친 단어 위에 포인터를 올려 두는 데스크톱 독자는, 휴대폰에서는 일반적인 방법으로 보낼 수 없는 이벤트를 보내는 셈입니다.

퍼블리셔의 글에 이미 있는 단어에 옅은 점선 밑줄이 그어지며, 그 밑줄에서 열리는 작은 창이 버블입니다. 데스크톱에서는 짧은 호버 지연 후에 버블이 열리고 마우스가 벗어나거나 Escape 키를 누르면 닫히며, 키보드에서는 포커스된 단어에서 Enter 키를 누르면 열립니다. 휴대폰에서는 임베드 adbubbles.js가 첫 번째 탭에 호버의 역할을 맡깁니다. 밑줄 친 단어를 탭하면 버블이 열리고, 바깥 아무 곳이나 탭하면 닫힙니다. 안쪽의 링크를 두 번째로 탭해야만 그 링크를 따라갑니다. 따라서 광고 단어를 처음 터치하면 창이 열릴 뿐, 페이지를 떠날 수는 없습니다.

페이지를 떠나는 것은 모든 기기에서 같습니다. 임베드는 세 가지 비컨을 보냅니다. 페이지 로드마다 조회 1회, 버블이 1초 동안 표시되었을 때 열람 1회, 링크를 따라갔을 때 클릭 1회입니다. AdBubbles는 쿠키를 설정하지 않고, 식별자를 저장하지 않으며, 독자의 개인정보를 수집하지 않습니다.

Apple과 Google은 W3C보다 큰 최소 크기를 정합니다

WCAG의 24 CSS 픽셀은 최소치이며, Apple과 Google은 자체 단위로 더 큰 수치를 공개합니다. Apple의 디자인 팁은 디자이너에게 "손가락으로 정확하게 탭할 수 있도록 컨트롤을 최소 44×44포인트로 만들라"고 말합니다.4 Google의 Android 접근성 지침은 터치 대상마다 최소 48×48dp를 요구합니다.5 그리고 "48×48dp의 터치 대상은 화면 크기와 관계없이 물리적 크기가 약 9mm가 된다"고 덧붙입니다.5

한 연구는 엄지를 직접 측정했습니다. Parhi, Karlson, Bederson은 MobileHCI 2006에서 발표한 연구에서 참가자 20명을 대상으로 터치스크린 휴대용 기기를 시험했습니다.6 한 번 탭하는 대상이 9.6mm에 이르자 오류율에 유의미한 차이가 없었습니다.6 저자들은 한 번 탭하는 작업에는 9.2mm, 연속 탭 작업에는 9.6mm가 "터치스크린 기반 휴대용 기기에서 한 손 엄지로 사용하기에 충분히 클 것"이라고 결론지었습니다.6 Google의 약 9mm라는 수치는 둘 모두와 1mm 이내로 차이 납니다.5

문장 안의 밑줄 친 단어는 표준이 예외로 두는 대상입니다

인라인 예외는 이렇게 되어 있습니다. "대상이 문장 안에 있거나, 그 크기가 대상이 아닌 텍스트의 줄 높이에 의해 달리 제한되는 경우."1 임베드가 표시하는 밑줄 친 단어는 퍼블리셔의 단락 안에 있는 텍스트로, 퍼블리셔 자신의 글꼴과 줄 높이로 설정되어 있습니다. 24픽셀 최소 기준은 여기에 적용되지 않습니다.1 버블 안의 링크는 다릅니다. 이 링크는 퍼블리셔의 CSS가 영향을 줄 수 없는 Shadow DOM 안에서 렌더링되는 창 속의 컨트롤입니다. 이는 이 기준이 염두에 두고 쓰인 종류의 대상이며, 접근성 감사는 이를 다른 컨트롤과 똑같이 측정합니다.

이해(Understanding) 문서는 "이 성공 기준의 의도는 인접한 대상을 실수로 활성화하지 않고 대상을 쉽게 활성화할 수 있도록 돕는 것"이라고 말합니다.2 이 문서가 언급하는 독자는 "손재주에 제약이 있는 사용자와 미세한 운동 동작에 어려움이 있는 사람들"입니다.2 W3C가 설명하는 위험은 크기만이 아니라 인접성입니다. 임베드는 한 단락에 버블을 두 개 넣지 않으며, 링크를 건너뜁니다. 따라서 광고 단어가 이미 목적지가 있는 링크 안에 놓이는 일은 없습니다.

특정 사이트에서 이것이 어떻게 보이는지 확인하는 데는 비용이 들지 않습니다. 퍼블리셔 계정과 임베드는 설정 비용이 없으며, 설치 안내에는 범위 설정과 페이지당 최대 개수가 설명되어 있습니다. 계정에 추가한 사이트는 버블이 게재되기 전에 어떤 단어가 현재 판매 중인지 보여 줍니다.

Google은 이미 실수로 인한 탭을 정책 문제로 다룹니다

AdSense에 대한 Google의 광고 게재위치 정책은 퍼블리셔에게 "링크, 재생 버튼, 다운로드 버튼, 탐색 버튼을 광고 근처에 둘 때는 실수로 인한 클릭으로 이어질 수 있으므로 주의하라"고 말합니다.7 Google 게시자 정책은 "탐색 요소나 기타 동작 요소를 덮거나 그에 인접하여 의도하지 않은 광고 상호작용으로 이어질 수 있는" Google 게재 광고를 금지합니다.8 둘 다 W3C의 의도 설명에 나오는 터치, 즉 한 대상을 노린 터치가 다른 대상에 떨어지는 경우를 설명합니다. 정책 페이지는 퍼블리셔에게 주의하라고 요청할 수 있을 뿐이며, 첫 터치가 무엇을 하는지는 형식이 결정합니다.

그런 클릭을 계속 만들어 내는 게재위치에 대한 Google의 해결책은 확인된 클릭(Confirmed Click)입니다. 도움말 페이지는 이를 "실수로 인한 클릭을 유발할 수 있는 광고 게재위치에 확인 단계를 추가하는 Google Ads 제품 기능"이라고 설명합니다.9 그런 광고를 탭한 독자는 "'사이트 방문' 같은 동작과 연결된 버튼을 클릭하여 광고주 페이지를 방문하려는 의도를 확인하라는 요청을 받습니다."9 그런 게재위치에서 Google은 한 번의 탭을 더 이상 의도의 증거로 보지 않으며, 사후에 탭을 한 번 더 끼워 넣습니다.

버블은 해결책이 아니라 설계상 그 두 번째 탭을 갖추고 있습니다. 첫 탭은 "Ad"(광고) 표시, 최대 40자의 제목, 최대 90자의 본문이 담긴 창을 엽니다. 창에는 광고주의 표시 도메인, 링크 하나, 작은 "Ads by AdBubbles" 표시도 있습니다. 링크를 누르는 두 번째 탭이 클릭이며, 버블 안의 모든 링크에는 rel="sponsored noopener"가 붙습니다.

그 두 번째 탭에 대해 임베드가 아는 것은 그것이 일어났다는 사실뿐입니다. AdBubbles는 퍼블리셔 페이지의 단어를 그달에 그 단어를 구매한 광고주와 연결합니다. 버블을 보는 독자는 페이지를 연 누구든 해당되며, 임베드는 그들 중 누구도 다른 페이지나 사이트로 따라가지 않고, 광고주에게 어떤 결과도 약속하지 않습니다. 클릭 비컨은 링크를 따라갔다는 사실만 기록할 뿐, 그 이유에 대해서는 아무것도 기록하지 않습니다.

첫 탭은 작은 글씨로 된 단어를 키울 수 없습니다

인라인 예외는 또한 밑줄 친 단어가 퍼블리셔의 타이포그래피가 정한 크기를 그대로 따른다는 뜻이기도 합니다. 어떤 사이트가 휴대폰에서 단락을 14픽셀 글자 크기와 20픽셀 줄 높이로 설정한다고 가정해 봅시다. 그러면 밑줄 친 단어의 높이는 20픽셀 줄보다 크지 않으며, 이는 기준이 다른 대상에 정한 최소치보다 작습니다. 이 단어가 예외가 되는 것은 인라인이기 때문일 뿐입니다. 예외 조항의 어떤 내용도 그 단어를 눌러야 하는 엄지를 바꾸지 않습니다.

임베드는 구매된 단어에 점선 밑줄을 추가할 뿐, 글자에 관한 다른 것은 아무것도 바꾸지 않습니다. 단어는 퍼블리셔 자신의 글꼴로, 테마가 정한 줄 높이로 남습니다. 휴대폰에서 페이지를 탭하기 어려운 퍼블리셔라면, 밑줄 친 단어도 주변 링크만큼 탭하기 어렵다는 것을 알게 될 것입니다. 범위와 페이지당 최대 개수는 한 페이지에 밑줄 친 단어가 몇 개 들어갈지를 정합니다. 어느 것도 단어를 그 단어의 글자 크기보다 크게 만들지는 않습니다.