Skip to content

저전력 모드에서 무음 비디오 자동재생이 차단되는 경우를 반영 (#1) - #2

Merged
midagedev merged 1 commit into
mainfrom
fix/low-power-autoplay
Aug 27, 2026
Merged

저전력 모드에서 무음 비디오 자동재생이 차단되는 경우를 반영 (#1)#2
midagedev merged 1 commit into
mainfrom
fix/low-power-autoplay

Conversation

@midagedev

Copy link
Copy Markdown
Owner

Fixes #1

@RanolP 님이 지적해 주신 대로, iOS 저전력 모드에서는 WebKit 이 무음 비디오도 자동재생하지 않습니다 (WebKit 168985, RESOLVED). 확인해 보니 문항 두 개가 "무음 + playsinline 이면 제스처 없이 재생된다"를 조건 없이 단정하고 있었습니다.

제가 근거로 달아 둔 WebKit 정책 블로그(2016)는 이 변경(2017)보다 1년 앞선 문서라 저전력 모드를 다루지 않습니다. 그 문서만 읽어서는 잡을 수 없는 결함이었습니다. MDN 의 Autoplay guide 에도 이 예외 서술이 없습니다.

그리고 지적해 주신 대로 애니메이션 GIF 는 이미지라 이 정책 밖에 있어 저전력 모드에서도 움직입니다. 그래서 문항이 일축했던 "모바일에서 재생이 안 될 것"이라는 반대가 완전히 틀린 것은 아니었습니다.

변경

image-gif-autoplay-001

예외를 정답의 교훈으로 올렸습니다. 옛 정답 문장은 one-step-short 오답으로 내렸습니다 — 소리가 정책의 본체라는 건 맞지만, 사용자에게 정지 프레임이 보이는 그 한 경우를 놓친 보기입니다.

보기
vendor-mixup 반대가 맞다 — iOS Safari는 playsinline 옵션조차 무시하므로 iOS에서는 GIF가 유일한 선택이다
정답 대체로 틀렸다 — 무음·인라인 비디오는 제스처 없이 재생된다. 단 iOS 저전력 모드에서는 그것도 차단되므로 정지 프레임 폴백을 함께 둔다
one-step-short 반대는 틀렸다 — 무음에 인라인을 붙이면 모바일 어디서나 제스처 없이 재생되므로 폴백은 불필요하다
adjacent GIF는 이미지라 브라우저 캐시에 남지만 비디오는 캐시되지 않아 반복 노출에는 GIF가 이득이다

이 교체로 축이 겹쳐 약했던 기존 overgeneralized 보기("모든 모바일 브라우저에서 제스처 이후에만")가 빠졌습니다. 경합이 "예외가 있나 없나"로 좁혀져 문항이 더 좋아졌습니다.

video-preview-gif-001

정답(미리보기 GIF → 무음 H.264 교체)은 그대로 둡니다 — 여전히 실무 정답입니다. 과대 서술만 걷었습니다: "GIF를 지킬 근거가 되지 못한다" → "전송량 전부를 비용으로 받아들일 근거는 되지 못한다". 그리고 poster 프레임 지정을 교체의 기본 절차로 해설에 명시했습니다.

말씀해 주신 Animated WebP / AVIF 축은 이 PR 에 넣지 않았습니다. 압축률과 iOS 커버리지가 별개의 판단이라 문항 하나로 묶기 어렵고, 별도 문항이 맞다고 봅니다 — 이슈로 남겨 두겠습니다.

검증

node tools/validate.mjs           → 게이트 통과 (149문항)
node tools/check-rfc-sections.mjs → 인용 47 · 존재하지 않는 절 0 · 제목 불일치 0
node tools/check-links.mjs        → 확인 128 · 정상 125 · 봇차단 3 · 죽음 0
node tools/e2e.mjs                → E2E 통과

정답 길이 77자 / 오답 평균 57.0자 = 1.35배 (§3-1 상한 1.4). §3-9 발문 어휘 최다 겹침은 오답 쪽 — 형태로 풀리지 않습니다.

data/sources.json 에 WebKit 168985 를 등록해 문항의 근거 링크로 나갑니다.

🤖 Generated with Claude Code

iOS disables autoplay of silent videos in Low Power Mode (WebKit 168985,
resolved), so "muted + playsinline plays without a gesture" is not
unconditional the way two questions stated it. An animated GIF is an image
and sits outside that policy, so it keeps moving in Low Power Mode -- which
means the objection those questions dismissed is not entirely wrong.

image-gif-autoplay-001 now makes the exception the thing being tested. Its
old answer became the one-step-short distractor: still right that sound is
what the policy targets, still missing the one case where a poster frame is
what the user sees. That replaced a weaker distractor duplicating the
vendor-mixup option's axis.

video-preview-gif-001 keeps its answer -- replacing preview GIFs with muted
H.264 is still the practical call -- but drops the overstatement that
nothing is left to justify GIF, and names the poster frame as part of the
swap rather than an afterthought.

The 2016 WebKit policy post this cited predates the Low Power Mode change
by a year, which is why reading it was not enough.

Reported-by: RanolP <https://github.com/RanolP>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@midagedev
midagedev merged commit 1d90900 into main Aug 27, 2026
1 check passed
@midagedev
midagedev deleted the fix/low-power-autoplay branch August 27, 2026 10:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

muted playsinline mp4는 gif를 대체할 수 없어 문제 내용 업데이트가 필요합니다.

1 participant