diff options
author | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2023-03-05 03:07:15 +0900 |
---|---|---|
committer | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2023-03-05 03:07:15 +0900 |
commit | 4431b8d9998d1ef74e55db3c8bf8757f06f0db0e (patch) | |
tree | 8127f6b916312d257fe3ab53327a6c851483bbec | |
parent | 9ffc02f8e7229702277c501c1ac8310e8e451dbc (diff) | |
download | hybring-4431b8d9998d1ef74e55db3c8bf8757f06f0db0e.tar.gz |
Improve error markup accessibility
-rw-r--r-- | src/xhtml.cr | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/xhtml.cr b/src/xhtml.cr index 35f9d62..be3d12c 100644 --- a/src/xhtml.cr +++ b/src/xhtml.cr @@ -34,7 +34,11 @@ CSS = " } form label { margin-right: 1ch } form input { margin-bottom: 1ex } - .error { color: red } + .error { + color: red; + margin-top: -1ex; + margin-bottom: 1ex; + } " class Page @@ -82,15 +86,15 @@ class Page end def input(xml, name, label, hint, error, value) - if error - xml.element "span" - xml.element "span", class: "error" do xml.text error end - xml.element "br" - end xml.element "label", for: name do xml.text label end xml.element "input", name: name, placeholder: hint, value: value, required: "required" xml.element "br" + if error + xml.element "label", class: "error" do xml.text "Error:" end + xml.element "label", class: "error" do xml.text error end + xml.element "br" + end end def form(xml, errors = {} of String => String, @@ -98,11 +102,11 @@ class Page xml.element "p" do xml.text "Then, please fill out the form below." end nick = params.fetch("nick", nil) xml.element "form", action: @api_url, method: "POST" do - input xml, "nick", "Nickname", "digits or lowercase letters", + input xml, "nick", "Nickname:", "digits or lowercase letters", errors.fetch("nick", nil), nick || "" - input xml, "opennic", "OpenNIC URL", "e.g. http://example.null", + input xml, "opennic", "OpenNIC URL:", "e.g. http://example.null", errors.fetch("opennic", nil), params.fetch("opennic", "") - input xml, "icann", "ICANN URL", "e.g. https://example.net", + input xml, "icann", "ICANN URL:", "e.g. https://example.net", errors.fetch("icann", nil), params.fetch("icann", "") xml.element "span" do xml.element "input", type: "hidden", name: "host", value: @static_host |