revise June 2022 form errors articles
Build and deploy / deploy (push) Successful in 16s

This commit is contained in:
2026-07-31 13:48:48 +03:00
parent 98a64abeb7
commit 2bfc9d929f
7 changed files with 625 additions and 1 deletions
@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="720" viewBox="0 0 1200 720" role="img" aria-labelledby="title desc">
<title id="title">Связь server error с declared semantic payload</title>
<desc id="desc">Диаграмма показывает, как совпавшие attemptId и версия создают запись ошибки поля и declared semantic payload. Правка поля очищает payload. Отдельно указано, что accessibility tree не наблюдается.</desc>
<rect width="1200" height="720" fill="#f8f9fc"/>
<text x="62" y="64" font-family="Arial, sans-serif" font-size="38" font-weight="700" fill="#172033">Одна error branch — один источник семантики</text>
<text x="62" y="110" font-family="Arial, sans-serif" font-size="25" fill="#536079">Сначала совпадение attempt и version, затем text, invalid state и id сообщения</text>
<g font-family="Arial, sans-serif">
<rect x="60" y="180" width="270" height="208" rx="16" fill="#eef1ff" stroke="#536dfe" stroke-width="3"/>
<text x="88" y="220" font-size="29" font-weight="700" fill="#172033">request snapshot</text>
<text x="88" y="258" font-size="24" fill="#33415c">attemptId: 2</text><text x="88" y="293" font-size="24" fill="#33415c">email version: 2</text><text x="88" y="328" font-size="24" fill="#33415c">email: taken@…</text>
<rect x="455" y="180" width="290" height="208" rx="16" fill="#fff0f0" stroke="#c73743" stroke-width="3"/>
<text x="483" y="220" font-size="29" font-weight="700" fill="#172033">server error record</text>
<text x="483" y="258" font-size="23" fill="#33415c">field: email</text><text x="483" y="291" font-size="23" fill="#33415c">source: server-declared</text><text x="483" y="324" font-size="22" fill="#33415c">message: другой адрес</text>
<rect x="860" y="150" width="280" height="270" rx="16" fill="#e3f5f4" stroke="#147a75" stroke-width="3"/>
<text x="888" y="190" font-size="29" font-weight="700" fill="#172033">declared payload</text>
<text x="888" y="228" font-size="23" fill="#33415c">invalid: true</text><text x="888" y="260" font-size="22" fill="#33415c">id: email-server-error</text><text x="888" y="292" font-size="22" fill="#33415c">describedBy: hint + error</text><text x="888" y="324" font-size="22" fill="#33415c">next: исправить email</text><text x="888" y="366" font-size="20" fill="#536079">not an accessibility tree</text>
</g>
<g fill="none" stroke="#536079" stroke-width="3" marker-end="url(#arrow)"><path d="M330 284H446"/><path d="M745 284H850"/><path d="M1000 420V516H280"/></g>
<g font-family="Arial, sans-serif" font-size="21" fill="#3e4a63"><text x="348" y="262">id + version match</text><text x="754" y="262">one reducer transition</text><text x="448" y="505">next edit: v3 → clear error and payload</text></g>
<rect x="80" y="538" width="1040" height="98" rx="14" fill="#fff8de" stroke="#b18200" stroke-width="2"/>
<text x="108" y="577" font-family="Arial, sans-serif" font-size="25" font-weight="700" fill="#172033">Граница доказательства</text>
<text x="108" y="612" font-family="Arial, sans-serif" font-size="20" fill="#33415c">Fixture проверяет данные. DOM, уникальность id, browser и screen reader — отдельная проверка.</text>
<defs><marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="#536079"/></marker></defs>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB