{
  "schema": "org-writing@v1",
  "slug": "mount-continuity-is-not-usability",
  "kg": {
    "id": "org:writing:mount-continuity-is-not-usability",
    "type": "brick",
    "graph": "/kg.json"
  },
  "title": "Mount continuity is not usability",
  "subtitle": "The structural assertion passed and the person still could not type",
  "abstract": "Where structural testing stops being sufficient, read off a case in which every continuity assertion held while the text field sat below the visible edge of the screen. The canonical treatment of the on-screen geometry contract.",
  "kind": "brick",
  "topics": [
    "Boundaries"
  ],
  "courseMemberships": [
    {
      "course": "org:courses:boundary",
      "topic": "Boundaries",
      "wall": "org:walls:engineering",
      "position": 4,
      "total": 5
    }
  ],
  "publishedAt": "2026-08-03T00:00:00.000Z",
  "version": 1,
  "guidelinesVersion": 15,
  "brief": {
    "problem": {
      "text": "A regression test can assert continuity precisely, pass honestly, and still be the reason a defect survives, because continuity is not the property the person at the screen depends on.",
      "claims": [
        "remained the document's active element"
      ]
    },
    "mechanism": {
      "text": "A continuity check answers whether the same element is still present and still focused, and no combination of those answers says where it is, so a contract built only from continuity assertions is satisfied by a layout that puts the element off the screen.",
      "claims": [
        "does not measure the input rectangle against the visible viewport rectangle"
      ]
    },
    "move": {
      "text": "Write on-screen geometry into the acceptance contract alongside continuity, so the composed test asserts that the thing a person is typing into sits inside the rectangle they can see.",
      "claims": []
    }
  },
  "sources": [
    {
      "repo": "mnstry-review-packets",
      "path": "2026-08-03 mobile keyboard defensive review packet (directory name withheld, tenant-identifying)"
    }
  ],
  "canonicalPath": "/writing/mount-continuity-is-not-usability/",
  "body": "This corpus argues, at length and without much hedging, that a guarantee resting on shape beats a guarantee resting on a promise. The argument holds. What follows is where it stops, and publishing the limit is part of holding the position honestly, because an argument that never says what it does not cover gets over-read by the people who believe it most.\n\nA review packet we read this year records a repair that worked. An earlier defect had destroyed the text field when the keyboard opened, taking focus, the draft, and the session state with it. The fix kept the subtree alive through the contraction, and the regression test written alongside it asserts exactly the right things. The original node stays connected to the document. The focused element is still the focused element. There is no remount. The test passes, and it passed on the morning a person could not type into that field.\n\nThe geometry, measured live after the outer container had been corrected experimentally, is the whole of the finding. The visible shell was three hundred and seventy-seven pixels tall. The content region inside it still believed it had seven hundred and fourteen, so the region holding the text field was pinned to the bottom of a space more than twice the height of the space anyone could see, putting the input at six hundred and twenty-four to seven hundred and fourteen and the text field itself at six hundred and thirty to six hundred and fifty-eight. Below the clip, by construction. And the field was still connected, still focused, still the document's active element, with the cursor blinking somewhere nobody would ever find it.\n\nThe mechanism is that a continuity check answers whether the same element is present and focused, and no combination of those answers describes where it is, so an acceptance contract assembled entirely from continuity assertions is fully satisfied by a layout that has put the element off the screen.\n\nThe existing test could not have caught it, and the reason repays a minute. It contracts the visual viewport from eight hundred and forty-four to five hundred and twelve while holding the reported window height at eight hundred and forty-four, which is the ordinary case where the two disagree and the browser tells you plainly that a keyboard arrived. The failure needs the other case, where both heights shrink together and the contraction is indistinguishable from any other reason a window got smaller. But even given the right case, the test would still have passed, because it never measures the input's rectangle against the visible one. It was not written to. That was never among the things it was asked to know. The same packet documents a second and separate finding about two components deciding one fact independently, which this corpus treats elsewhere and this piece does not repeat.\n\nThe packet states its own correction in a sentence we have not improved on. The acceptance contract must include on-screen geometry, not only mount continuity.\n\nThe standards bodies got there the same way, by shipping the incomplete version first. When the Web Content Accessibility Guidelines reached version 2.2 in October 2023, one of the new success criteria was Focus Not Obscured, requiring that a component receiving keyboard focus not be entirely hidden by content the author put on the page. Every earlier criterion in that family asked whether focus was visible in the sense of having an indicator, which is a property of the element, and a decade of practice was needed to notice that an element can carry a perfect focus indicator underneath a sticky footer. The correction is not that the earlier criteria were wrong. It is that they described the element and not the encounter.\n\nSo the honest form of our own thesis needs a clause. Structural over behavioral is a claim about what a guarantee rests on, and it is not a claim that any particular structural assertion is the right one. A shape can be asserted with total precision and be the wrong shape. Node identity, focus retention, and mount continuity are all structural, all cheap to verify, all genuinely worth having, and not one of them is the property the person holding the phone depends on, which is that the thing they are typing into is inside the rectangle they can see. The corpus that argues hardest for structure is the right place to say where structure has to be pointed, and pointing it at the encounter rather than the element is how the argument grows up.",
  "apparatus": {
    "note": "The human-facing essay is deliberately practical; this apparatus carries the full references, evidence-graded claims, article-local concepts, and research context behind it. Canonical concept definitions come from the concept registry.",
    "references": [
      {
        "id": "org:references:mount-continuity-is-not-usability:r01",
        "author": "Held privately (client engagement, deidentified)",
        "work": "A defensive review packet commissioning an independent review of a mobile keyboard regression, dated 2026-08-03",
        "year": 2026,
        "relevance": "The primary artifact. Its second failure mode records the live rectangles, the retained focus, and the packet's own one-sentence correction about acceptance contracts, and its test-sufficiency section explains why the existing green regression test could not have caught the failure."
      },
      {
        "id": "org:references:mount-continuity-is-not-usability:r02",
        "author": "World Wide Web Consortium",
        "work": "Web Content Accessibility Guidelines 2.2, success criterion 2.4.11 Focus Not Obscured",
        "year": 2023,
        "relevance": "The external anchor and the same discovery made by a standards body. Earlier criteria required a visible focus indicator, a property of the element; 2.2 had to add a criterion about whether the focused component is on the screen at all."
      },
      {
        "id": "org:references:mount-continuity-is-not-usability:r03",
        "author": "MNSTRY (this corpus)",
        "work": "'Structural, not behavioral' (the parent essay)",
        "year": 2026,
        "relevance": "The essay whose limit this brick marks. The thesis is a claim about what a guarantee rests on, not a claim that any given structural assertion is the right one."
      },
      {
        "id": "org:references:mount-continuity-is-not-usability:r04",
        "author": "MNSTRY (this corpus)",
        "work": "'Two classifiers, two truths' (the companion brick)",
        "year": 2026,
        "relevance": "The other finding read out of the same packet. The two bricks divide one artifact and neither re-argues the other's half; that piece owns the duplicated-authority argument entirely."
      }
    ],
    "claims": [
      {
        "id": "org:claims:mount-continuity-is-not-usability:c01",
        "claim": "In the reviewed case, after the outer container was experimentally corrected, the visible shell measured 377 pixels tall while the content region inside it retained a height of 714 pixels, placing the input region at 624 to 714 and the text field at 630 to 658, below the visible clip.",
        "basis": "Live rectangle measurements recorded in the packet after the outer correction, graded established at high confidence in the packet's own evidence ledger.",
        "confidence": "verified",
        "sources": []
      },
      {
        "id": "org:claims:mount-continuity-is-not-usability:c02",
        "claim": "At that moment the text field remained connected to the document and remained the document's active element, so every continuity assertion in the existing regression test held.",
        "basis": "The same live measurement block, which records the active-element check alongside the rectangles; the mapping to the regression test's assertions is a read of that test's contents.",
        "confidence": "verified",
        "sources": []
      },
      {
        "id": "org:claims:mount-continuity-is-not-usability:c03",
        "claim": "The existing regression test contracts the visual viewport from 844 to 512 while holding the mocked window height at 844, which exercises the divergent-height case rather than the equal-height case in which the failure occurs, and it does not measure the input rectangle against the visible viewport rectangle.",
        "basis": "The packet's test-sufficiency section, cross-read against the test it names.",
        "confidence": "verified",
        "sources": []
      },
      {
        "id": "org:claims:mount-continuity-is-not-usability:c04",
        "claim": "The review packet states its own correction in one sentence, that the acceptance contract must include on-screen geometry and not only mount continuity.",
        "basis": "The sentence appears verbatim in the packet's second failure mode section.",
        "confidence": "verified",
        "sources": []
      },
      {
        "id": "org:claims:mount-continuity-is-not-usability:c05",
        "claim": "WCAG 2.2, published as a W3C Recommendation in October 2023, added success criterion 2.4.11 Focus Not Obscured, requiring that a component receiving keyboard focus not be entirely hidden by author-created content, a property the earlier focus-visibility criteria did not cover.",
        "basis": "The published recommendation and its understanding documents. The characterization of what the earlier criteria covered is standard commentary rather than a contested reading.",
        "confidence": "verified",
        "sources": []
      },
      {
        "id": "org:claims:mount-continuity-is-not-usability:c06",
        "claim": "One value in the same packet's classifier-input table was reconstructed from static dataflow rather than read from a live instrument, a limitation this corpus records against the companion brick; it does not bear on the rectangles cited here, which were measured.",
        "basis": "A follow-up source read on 2026-08-03 recorded in the companion brick's apparatus. The separation between the reconstructed classifier input and the measured rectangles is a reading of which numbers the packet sources to instruments.",
        "confidence": "directional",
        "sources": []
      }
    ],
    "concepts": [
      {
        "id": "org:concepts:on-screen-geometry-contract",
        "name": "The on-screen geometry contract",
        "definition": "An acceptance contract for an interactive surface asserts where the interactive element sits relative to the region a person can actually see, not only that the element still exists and still holds focus. Continuity assertions describe the element; geometry assertions describe the encounter. No combination of continuity answers says where anything is, so a contract assembled entirely from them is fully satisfied by a layout that has put the focused element off the screen. This marks the limit of structural testing rather than an argument against it: a shape can be asserted precisely and still be the wrong shape, and choosing which property to make structural remains a judgement.",
        "provenance": "canonical"
      }
    ],
    "researchContext": "SCRUB, standing and absolute, on the same terms as the companion brick and\n\"The ledger says unknown\". The source is a client review packet held outside\nthis corpus. No tenant codename, client name, product surface, component\nname, repository path, branch, pull-request number, port, host, or commit\nidentifier enters the prose, the claims, or the sources path. The source\nlabel records the packet's date and character rather than its directory,\nwhich is withheld as tenant-identifying. Numeric geometry is retained\nbecause pixel rectangles identify nothing, and the platform is described by\nbehavior rather than by device or version.\n\nThe brick's contribution is publishing the limit of one of this corpus's own\nload-bearing arguments. Everything here is structural, and the point is that\nbeing structural was not sufficient, because the assertions were pointed at\nthe element rather than at the encounter. That framing is what has to be\nprotected in any revision. This piece is not an argument against structural\nsafety and it is not a second treatment of the duplicated-classifier finding,\nwhich belongs wholly to \"Two classifiers, two truths\".\n\nGrading note: the reconstructed-value claim is carried here deliberately, in\ndirectional grade, even though it belongs to the companion brick's finding.\nThe reason is that a reader who knows one number in that packet was inferred\ndeserves to be told, in this apparatus, that the numbers this brick uses are\nnot that one. Removing it would leave the reader to assume the worst about\nmeasurements that were in fact instrumented.\n\nBoundary with the parent essay: \"Structural, not behavioral\" argues for\nguarantees that rest on shape. This brick supplies the clause the essay does\nnot carry, which is that a shape can be asserted precisely and still be the\nwrong shape, and that choosing which property to make structural is a\njudgement the thesis does not make for you."
  },
  "contract": "https://mnstry.org/contracts/org/org-writing.v1.schema.json",
  "releaseHash": "4454f29efb2b44882aa561a4efd760a9b5b63032b8656acfe11bf7744cf68b3b",
  "versions": [
    {
      "version": 1,
      "cutAt": "2026-08-03",
      "note": "Initial publication, boundary wave",
      "visibility": "published",
      "path": "/writing/mount-continuity-is-not-usability/",
      "contentHash": "sha256:a4a0bcf9a2272799",
      "releaseHash": "4454f29efb2b44882aa561a4efd760a9b5b63032b8656acfe11bf7744cf68b3b"
    }
  ]
}