diff --git a/book/architecture/forms.md b/book/architecture/forms.md
index ae2555db..34b70ec5 100644
--- a/book/architecture/forms.md
+++ b/book/architecture/forms.md
@@ -78,7 +78,7 @@ view model =
viewInput : String -> String -> String -> (String -> msg) -> Html msg
viewInput t p v toMsg =
- input [ type_ t, placeholder p, value v, onInput toMsg ] []
+ span [] [ input [ type_ t, placeholder p, value v, onInput toMsg ] [] ]
viewValidation : Model -> Html msg
@@ -144,10 +144,11 @@ We start by creating a `
` with four child nodes. But instead of using funct
```elm
viewInput : String -> String -> String -> (String -> msg) -> Html msg
viewInput t p v toMsg =
- input [ type_ t, placeholder p, value v, onInput toMsg ] []
+ span [] [ input [ type_ t, placeholder p, value v, onInput toMsg ] [] ]
```
-So `viewInput "text" "Name" model.name Name` can create a node like ``. That node will also send messages like `Name "Billy"` to `update` on user input.
+So `viewInput "text" "Name" model.name Name` can create a node like ``. That node will also send messages like `Name "Billy"` to `update` on user input.
+(We wrap it in a span for compatibility with popular browser extensions, such as password managers.)
The fourth entry is more interesting. It is a call to `viewValidation`: