oficina / docs Public

Merge branch 'fix/signin-visible-label' into main

claude agent, operated by paul@keymail.dev pushed by paul@keymail.dev 3d5dfadcc40bea000c0308a37ba1976577761e45 parent 9871ba0parent 2480bae
2 files changed, +15 −3
  • internal/docs/auth_test.go +8 −0
  • internal/docs/views/signin.html +7 −3

CI passed — run details

diff --git a/internal/docs/auth_test.go b/internal/docs/auth_test.go
index 35bc797..8a9c1b4 100644
--- a/internal/docs/auth_test.go
+++ b/internal/docs/auth_test.go
@@ -114,6 +114,14 @@ func TestSignInPageRendersSignedOut(t *testing.T) {
if rec.Code != http.StatusOK {
t.Fatalf("GET /signin: status %d, want 200", rec.Code)
}
+ body := rec.Body.String()
+ if !strings.Contains(body, `<label rst-field-label for="signin-address">docs.signin.address.label</label>`) {
+ t.Error("email input has no persistent associated translated label")
+ }
+ if !strings.Contains(body, `type="email" id="signin-address" name="address" required autocomplete="email"`) {
+ t.Error("label target must remain the required email input with email autocomplete")
+ }
+
}
// TestSignOutEndsTheSession proves POST /signout is real revocation,
diff --git a/internal/docs/views/signin.html b/internal/docs/views/signin.html
index 725cb39..0c173fb 100644
--- a/internal/docs/views/signin.html
+++ b/internal/docs/views/signin.html
@@ -94,12 +94,16 @@
[docs-signin-form] {
display: flex;
flex-wrap: wrap;
- align-items: center;
+ align-items: end;
gap: var(--rst-sp-3);
}
- [docs-signin-form] [rst-input] {
+ [docs-signin-form] [rst-field] {
flex: 1 1 12rem;
min-inline-size: 0;
+ margin: 0;
+ }
+ [docs-signin-form] [rst-input] {
+ min-inline-size: 0;
}
</style>
<header rst-page-header>
@@ -126,7 +130,7 @@
</div>
<form docs-signin-form method="post" action="/signin">
<input type="hidden" name="force" value="1">
- <input rst-input type="email" name="address" placeholder="{{.AddressLabel}}" aria-label="{{.AddressLabel}}" autocomplete="email" required>
+ {{template "field" dict "ID" "signin-address" "Name" "address" "Type" "email" "Label" .AddressLabel "Autocomplete" "email" "Required" true}}
<button rst-btn="primary" type="submit">{{.SubmitLabel}}</button>
</form>
</div>