Skip to content

Android/iOS Enter·Backspace block boundary 실기기 trace 수집 #72

Description

@developer-1px

배경

#20 조사에서 block boundary Enter/Backspace는 headless command가 소유해야 한다고 정리했다. 하지만 Android/iOS virtual keyboard의 event ordering과 native effect는 jsdom replay나 desktop browser smoke만으로 닫을 수 없다.

ProseMirror-view와 Lexical changelog에는 같은 bug class가 반복된다.

  • Android Backspace가 Enter로 해석됨
  • Android virtual keyboard Backspace join이 Enter handler를 실행함
  • Android code block Enter와 spell correction 충돌
  • Chrome Android empty nested list item Enter native behavior 교체
  • iOS empty heading Enter, native no-effect Enter, double paragraph Enter
  • code block empty line Backspace와 Firefox cursor 위치 문제

근거

수집할 trace

  • Android Chrome / GBoard: paragraph start/end Backspace/Delete
  • Android Chrome / GBoard: empty paragraph Backspace
  • Android Chrome / GBoard: codeBlock Enter and newline Backspace
  • Android Chrome / GBoard: empty listItem or whitespace-only listItem Enter
  • iOS Safari: empty heading Enter
  • iOS Safari: paragraph start/end Enter and Backspace
  • iOS Safari: codeBlock Enter and newline Backspace

완료 기준

  • 각 trace에 raw input event 순서, beforeinput.inputType, data, isComposing, selection before/after를 남긴다.
  • native DOM effect가 있었는지와 command result가 충돌했는지 분리한다.
  • 재현 가능한 trace는 fixture 또는 문서 evidence로 저장한다.
  • current command policy를 바꿔야 하는 항목은 별도 구현 이슈로 분리한다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    contenteditableBrowser contenteditable behavior and failures모바일모바일 브라우저와 가상 키보드 동작조사구현 전 조사키보드keyboard shortcut, layout, key event 해석테스트테스트 하네스, 브라우저 자동화, fixture 한계

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions