diff --git a/user/src/com/google/gwt/dom/builder/client/DomFrameBuilder.java b/user/src/com/google/gwt/dom/builder/client/DomFrameBuilder.java
index 8e2736a..fb6cbac 100644
--- a/user/src/com/google/gwt/dom/builder/client/DomFrameBuilder.java
+++ b/user/src/com/google/gwt/dom/builder/client/DomFrameBuilder.java
@@ -18,6 +18,7 @@
 import com.google.gwt.dom.builder.shared.FrameBuilder;
 import com.google.gwt.dom.client.FrameElement;
 import com.google.gwt.safehtml.shared.SafeUri;
+import com.google.gwt.safehtml.shared.annotations.IsSafeUri;
 import com.google.gwt.safehtml.shared.annotations.IsTrustedResourceUri;
 
 /**
@@ -43,7 +44,7 @@
   }
 
   @Override
-  public FrameBuilder longDesc(String longDesc) {
+  public FrameBuilder longDesc(@IsSafeUri String longDesc) {
     assertCanAddAttribute().setLongDesc(longDesc);
     return this;
   }
diff --git a/user/src/com/google/gwt/dom/builder/client/DomModBuilder.java b/user/src/com/google/gwt/dom/builder/client/DomModBuilder.java
index c8c6323..5a0089e 100644
--- a/user/src/com/google/gwt/dom/builder/client/DomModBuilder.java
+++ b/user/src/com/google/gwt/dom/builder/client/DomModBuilder.java
@@ -18,6 +18,7 @@
 import com.google.gwt.dom.builder.shared.ModBuilder;
 import com.google.gwt.dom.client.ModElement;
 import com.google.gwt.safehtml.shared.SafeUri;
+import com.google.gwt.safehtml.shared.annotations.IsSafeUri;
 
 /**
  * DOM-based implementation of {@link ModBuilder}.
@@ -35,7 +36,7 @@
   }
 
   @Override
-  public ModBuilder cite(String cite) {
+  public ModBuilder cite(@IsSafeUri String cite) {
     assertCanAddAttribute().setCite(cite);
     return this;
   }
diff --git a/user/src/com/google/gwt/dom/builder/client/DomQuoteBuilder.java b/user/src/com/google/gwt/dom/builder/client/DomQuoteBuilder.java
index a696ae5..a59d8c8 100644
--- a/user/src/com/google/gwt/dom/builder/client/DomQuoteBuilder.java
+++ b/user/src/com/google/gwt/dom/builder/client/DomQuoteBuilder.java
@@ -18,6 +18,7 @@
 import com.google.gwt.dom.builder.shared.QuoteBuilder;
 import com.google.gwt.dom.client.QuoteElement;
 import com.google.gwt.safehtml.shared.SafeUri;
+import com.google.gwt.safehtml.shared.annotations.IsSafeUri;
 
 /**
  * DOM-based implementation of {@link QuoteBuilder}.
@@ -36,7 +37,7 @@
   }
 
   @Override
-  public QuoteBuilder cite(String cite) {
+  public QuoteBuilder cite(@IsSafeUri String cite) {
     assertCanAddAttribute().setCite(cite);
     return this;
   }
diff --git a/user/src/com/google/gwt/dom/builder/shared/FrameBuilder.java b/user/src/com/google/gwt/dom/builder/shared/FrameBuilder.java
index bc98851..3dbedda 100644
--- a/user/src/com/google/gwt/dom/builder/shared/FrameBuilder.java
+++ b/user/src/com/google/gwt/dom/builder/shared/FrameBuilder.java
@@ -16,6 +16,7 @@
 package com.google.gwt.dom.builder.shared;
 
 import com.google.gwt.safehtml.shared.SafeUri;
+import com.google.gwt.safehtml.shared.annotations.IsSafeUri;
 import com.google.gwt.safehtml.shared.annotations.IsTrustedResourceUri;
 
 /**
@@ -48,7 +49,7 @@
    *      href="http://www.w3.org/TR/1999/REC-html401-19991224/present/frames.html#adef-longdesc-FRAME">W3C
    *      HTML Specification</a>
    */
-  FrameBuilder longDesc(String longDesc);
+  FrameBuilder longDesc(@IsSafeUri String longDesc);
 
   /**
    * Frame margin height, in pixels.
diff --git a/user/src/com/google/gwt/dom/builder/shared/HtmlFrameBuilder.java b/user/src/com/google/gwt/dom/builder/shared/HtmlFrameBuilder.java
index 870ea9e..79a04b7 100644
--- a/user/src/com/google/gwt/dom/builder/shared/HtmlFrameBuilder.java
+++ b/user/src/com/google/gwt/dom/builder/shared/HtmlFrameBuilder.java
@@ -16,6 +16,7 @@
 package com.google.gwt.dom.builder.shared;
 
 import com.google.gwt.safehtml.shared.SafeUri;
+import com.google.gwt.safehtml.shared.annotations.IsSafeUri;
 import com.google.gwt.safehtml.shared.annotations.IsTrustedResourceUri;
 import com.google.gwt.safehtml.shared.annotations.SuppressIsTrustedResourceUriCastCheck;
 
@@ -39,7 +40,7 @@
   }
 
   @Override
-  public FrameBuilder longDesc(String longDesc) {
+  public FrameBuilder longDesc(@IsSafeUri String longDesc) {
     return trustedAttribute("longDesc", longDesc);
   }
 
diff --git a/user/src/com/google/gwt/dom/builder/shared/HtmlQuoteBuilder.java b/user/src/com/google/gwt/dom/builder/shared/HtmlQuoteBuilder.java
index 35e873f..79b496c 100644
--- a/user/src/com/google/gwt/dom/builder/shared/HtmlQuoteBuilder.java
+++ b/user/src/com/google/gwt/dom/builder/shared/HtmlQuoteBuilder.java
@@ -16,6 +16,7 @@
 package com.google.gwt.dom.builder.shared;
 
 import com.google.gwt.safehtml.shared.SafeUri;
+import com.google.gwt.safehtml.shared.annotations.IsSafeUri;
 
 /**
  * HTML-based implementation of {@link QuoteBuilder}.
@@ -32,7 +33,7 @@
   }
 
   @Override
-  public QuoteBuilder cite(String cite) {
+  public QuoteBuilder cite(@IsSafeUri String cite) {
     return trustedAttribute("cite", cite);
   }
 }
diff --git a/user/src/com/google/gwt/dom/builder/shared/ModBuilder.java b/user/src/com/google/gwt/dom/builder/shared/ModBuilder.java
index efdbdf6..3cc0046 100644
--- a/user/src/com/google/gwt/dom/builder/shared/ModBuilder.java
+++ b/user/src/com/google/gwt/dom/builder/shared/ModBuilder.java
@@ -16,6 +16,7 @@
 package com.google.gwt.dom.builder.shared;
 
 import com.google.gwt.safehtml.shared.SafeUri;
+import com.google.gwt.safehtml.shared.annotations.IsSafeUri;
 
 /**
  * Builds an mod element.
@@ -34,7 +35,7 @@
    *
    * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/">W3C HTML Specification</a>
    */
-  ModBuilder cite(String cite);
+  ModBuilder cite(@IsSafeUri String cite);
 
   /**
    * The date and time of the change.
diff --git a/user/src/com/google/gwt/dom/builder/shared/QuoteBuilder.java b/user/src/com/google/gwt/dom/builder/shared/QuoteBuilder.java
index ee8c1c0..6911867 100644
--- a/user/src/com/google/gwt/dom/builder/shared/QuoteBuilder.java
+++ b/user/src/com/google/gwt/dom/builder/shared/QuoteBuilder.java
@@ -16,6 +16,7 @@
 package com.google.gwt.dom.builder.shared;
 
 import com.google.gwt.safehtml.shared.SafeUri;
+import com.google.gwt.safehtml.shared.annotations.IsSafeUri;
 
 /**
  * Builds an quote element.
@@ -38,5 +39,5 @@
    *      href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/text.html#adef-cite-Q">W3C
    *      HTML Specification</a>
    */
-  QuoteBuilder cite(String cite);
+  QuoteBuilder cite(@IsSafeUri String cite);
 }
diff --git a/user/src/com/google/gwt/dom/client/FrameElement.java b/user/src/com/google/gwt/dom/client/FrameElement.java
index 9925eb2..dba48d6 100644
--- a/user/src/com/google/gwt/dom/client/FrameElement.java
+++ b/user/src/com/google/gwt/dom/client/FrameElement.java
@@ -17,6 +17,7 @@
 
 import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.safehtml.shared.SafeUri;
+import com.google.gwt.safehtml.shared.annotations.IsSafeUri;
 import com.google.gwt.safehtml.shared.annotations.IsTrustedResourceUri;
 import com.google.gwt.safehtml.shared.annotations.SuppressIsTrustedResourceUriCastCheck;
 
@@ -179,7 +180,7 @@
    *
    * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/present/frames.html#adef-longdesc-FRAME">W3C HTML Specification</a>
    */
-  public final native void setLongDesc(String longDesc) /*-{
+  public final native void setLongDesc(@IsSafeUri String longDesc) /*-{
      this.longDesc = longDesc;
    }-*/;
 
diff --git a/user/src/com/google/gwt/dom/client/ModElement.java b/user/src/com/google/gwt/dom/client/ModElement.java
index a06a139..0ee4e1e 100644
--- a/user/src/com/google/gwt/dom/client/ModElement.java
+++ b/user/src/com/google/gwt/dom/client/ModElement.java
@@ -17,6 +17,7 @@
 
 import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.safehtml.shared.SafeUri;
+import com.google.gwt.safehtml.shared.annotations.IsSafeUri;
 
 /**
  * Notice of modification to part of a document.
@@ -109,7 +110,7 @@
    *
    * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/">W3C HTML Specification</a>
    */
-  public final native void setCite(String cite) /*-{
+  public final native void setCite(@IsSafeUri String cite) /*-{
     this.cite = cite;
   }-*/;
 
diff --git a/user/src/com/google/gwt/dom/client/QuoteElement.java b/user/src/com/google/gwt/dom/client/QuoteElement.java
index e5bed13..72409e2 100644
--- a/user/src/com/google/gwt/dom/client/QuoteElement.java
+++ b/user/src/com/google/gwt/dom/client/QuoteElement.java
@@ -17,6 +17,7 @@
 
 import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.safehtml.shared.SafeUri;
+import com.google.gwt.safehtml.shared.annotations.IsSafeUri;
 
 /**
  * For the Q and BLOCKQUOTE elements.
@@ -98,7 +99,7 @@
    *
    * @see <a href="http://www.w3.org/TR/1999/REC-html401-19991224/struct/text.html#adef-cite-Q">W3C HTML Specification</a>
    */
-  public final native void setCite(String cite) /*-{
+  public final native void setCite(@IsSafeUri String cite) /*-{
     this.cite = cite;
   }-*/;
 }
