)]}'
{
  "commit": "32e7fffdd3ba4f0973b8314d16ccb348788e7afd",
  "tree": "866dc48cb3afa4d7356971c131474161e47bb296",
  "parents": [
    "6603e14ccd73dbb87689a01cf70d6c292c35810a"
  ],
  "author": {
    "name": "zhongliugo",
    "email": "zhongliu88889@gmail.com",
    "time": "Tue Sep 01 16:32:00 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Sep 01 16:32:00 2026 +0000"
  },
  "message": "[web] Anchor flt-semantics-host at 0,0 to fix WebKit semantics offset (#190486)\n\nFixes #190483.\n\nThis is the part of the fix to #129324.\n\n**Problem**\nOn iOS every browser uses WebKit. `\u003cflt-semantics-host\u003e` is `position:\nabsolute` with no `left` or `top`, so it falls back to its CSS static\nposition. WebKit resolves that static position past the in-flow\n`\u003cflt-glass-pane\u003e`, so the entire semantics layer is shifted roughly one\nviewport off-screen. VoiceOver focus lands off-screen for every control,\ntext-field taps miss the `\u003cinput\u003e`. Blink and Gecko resolve the same\nstatic position to 0, so they are unaffected.\n\n**Fix**\nSet `left: 0; top: 0` in `StyleManager.styleSemanticsHost` so the host\nis anchored at the view origin.\n\n**Demo**\nMeasured on an iPhone at 430px width and devicePixelRatio 3, with\nsemantics enabled:\n- Before, stock engine: https://flutter-demo-57-before.web.app reports 4\nof 5 accessibility nodes off-screen, VoiceOver focus lands off-screen,\nand picking a dropdown item blanks the screen.\n- After, this fix: https://flutter-demo-57-after.web.app reports 0 of 5,\nVoiceOver focus lands on each control, and the dropdown works. Please\nnote that there is a known issue that the webkit delays keyboard\u0027s pop\nup when voice over is enabled.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "234f26bacc56ab9ac3b38ca64288fd3b2a24ba30",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/lib/web_ui/lib/src/engine/view_embedder/style_manager.dart",
      "new_id": "843bf62545db53553be2b7b5e8d91bde10b575cd",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/lib/web_ui/lib/src/engine/view_embedder/style_manager.dart"
    },
    {
      "type": "modify",
      "old_id": "931f8a77b4b1ac5d8b6994ac23fd0114b8700fec",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/lib/web_ui/test/engine/view_embedder/style_manager_test.dart",
      "new_id": "659e5a5f0e1ffc62bb52d660cb53b329a66396c8",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/lib/web_ui/test/engine/view_embedder/style_manager_test.dart"
    }
  ]
}
