diff --git a/src/Yesod/Elements.hs b/src/Yesod/Elements.hs
--- a/src/Yesod/Elements.hs
+++ b/src/Yesod/Elements.hs
@@ -254,6 +254,7 @@
   , rel_
   , required_
   , reversed_
+  , role_
   , rows_
   , rowspan_
   , sandbox_
@@ -288,10 +289,9 @@
   ) where
 
 import Yesod.Core (toWidget)
-import Yesod.Core.Types (Body(..),GWData(..),WidgetFor(..),WidgetData(..))
+import Yesod.Core.Types (WidgetFor(..))
 import Text.Blaze.Html (Html,Attribute,AttributeValue)
 import Data.Foldable
-import Data.IORef (modifyIORef)
 import Data.String (fromString)
 import Data.Monoid
 import qualified Text.Blaze.Renderer.Utf8 as BLZU
@@ -1048,6 +1048,9 @@
 reversed_ :: AttributeValue -> Attribute
 reversed_ = HA.reversed
 
+role_ :: AttributeValue -> Attribute
+role_ = HA.role
+
 rows_ :: AttributeValue -> Attribute
 rows_ = HA.rows
 
@@ -1160,6 +1163,21 @@
            <> BB.char7 '"'
            <> bb
        , TB.fromText (BI.getText key)
+           <> textFromChoiceString value
+           <> TB.singleton '"'
+           <> tb
+       ) h
+  go (sb,bb,tb) (BI.AddCustomAttribute key value h) =
+    go ( (' ' :) . BLZS.fromChoiceString key . ("=\"" ++) . BLZS.fromChoiceString value . ('"' :) . sb
+       , BB.char7 ' '
+           <> fromChoiceString key
+           <> BB.byteString "=\""
+           <> fromChoiceString value
+           <> BB.char7 '"'
+           <> bb
+       , TB.singleton ' '
+           <> textFromChoiceString key
+           <> TB.fromText "=\""
            <> textFromChoiceString value
            <> TB.singleton '"'
            <> tb
diff --git a/yesod-elements.cabal b/yesod-elements.cabal
--- a/yesod-elements.cabal
+++ b/yesod-elements.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.0
 name: yesod-elements
-version: 1.1
+version: 1.1.1
 synopsis: Non template haskell markup building function in the spirit of lucid
 description: Build yesod widgets without shakespearean templating
 license: MIT
@@ -17,7 +17,7 @@
   build-depends:
       base >=4.9 && <5.0
     , yesod-core >= 1.6
-    , blaze-html >= 0.8
+    , blaze-html >= 0.9.1.0
     , blaze-markup >= 0.8.2
     , bytestring >= 0.10
     , text >= 1.2.0
