diff --git a/sw/CppunitTest_sw_htmlexport.mk b/sw/CppunitTest_sw_htmlexport.mk
index 475ce41884ba..23cdef152076 100644
--- a/sw/CppunitTest_sw_htmlexport.mk
+++ b/sw/CppunitTest_sw_htmlexport.mk
@@ -56,6 +56,7 @@ $(eval $(call gb_CppunitTest_use_components,sw_htmlexport,\
canvas/source/factory/canvasfactory \
comphelper/util/comphelp \
configmgr/source/configmgr \
+ dbaccess/util/dba \
embeddedobj/util/embobj \
filter/source/config/cache/filterconfig1 \
filter/source/storagefilterdetect/storagefd \
diff --git a/sw/qa/extras/htmlexport/data/checkbox-radiobutton.doc b/sw/qa/extras/htmlexport/data/checkbox-radiobutton.doc
new file mode 100644
index 000000000000..17162a41012b
Binary files /dev/null and b/sw/qa/extras/htmlexport/data/checkbox-radiobutton.doc differ
diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx
index 1c479a01dd85..2db20efe992f 100644
--- a/sw/qa/extras/htmlexport/htmlexport.cxx
+++ b/sw/qa/extras/htmlexport/htmlexport.cxx
@@ -200,6 +200,26 @@ DECLARE_HTMLEXPORT_TEST(testExportImageProperties, "HTMLImage.odt")
assertXPath(pDoc, "/html/body/p/a/font/img", "usemap", "#map1");
}
+DECLARE_HTMLEXPORT_TEST(testExportCheckboxRadioButtonState, "checkbox-radiobutton.doc")
+{
+ htmlDocPtr pDoc = parseHtml(maTempFile);
+ CPPUNIT_ASSERT(pDoc);
+
+ assertXPath(pDoc, "/html/body", 1);
+ assertXPath(pDoc, "/html/body/p[1]/input", "type", "checkbox");
+ assertXPath(pDoc, "/html/body/p[1]/input", "checked", "checked");
+ assertXPath(pDoc, "/html/body/p[2]/input", "type", "checkbox");
+ assertXPathNoAttribute(pDoc, "/html/body/p[2]/input", "checked");
+ assertXPath(pDoc, "/html/body/form/p[1]/input", "type", "checkbox");
+ assertXPath(pDoc, "/html/body/form/p[1]/input", "checked", "checked");
+ assertXPath(pDoc, "/html/body/form/p[2]/input", "type", "checkbox");
+ assertXPathNoAttribute(pDoc, "/html/body/form/p[2]/input", "checked");
+ assertXPath(pDoc, "/html/body/form/p[3]/input", "type", "radio");
+ assertXPath(pDoc, "/html/body/form/p[3]/input", "checked", "checked");
+ assertXPath(pDoc, "/html/body/form/p[4]/input", "type", "radio");
+ assertXPathNoAttribute(pDoc, "/html/body/form/p[4]/input", "checked");
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/html/htmlforw.cxx b/sw/source/filter/html/htmlforw.cxx
index 4fc3adf8620b..781704f5f20e 100644
--- a/sw/source/filter/html/htmlforw.cxx
+++ b/sw/source/filter/html/htmlforw.cxx
@@ -752,6 +752,9 @@ Writer& OutHTML_DrawFrmFmtAsControl( Writer& rWrt,
TRISTATE_FALSE != *(sal_Int16*) aTmp.getValue() )
{
sOptions += " " + OString(OOO_STRING_SVTOOLS_HTML_O_checked);
+ sOptions += "=\"";
+ sOptions += OString(OOO_STRING_SVTOOLS_HTML_O_checked);
+ sOptions += "\"";
}
aTmp = xPropSet->getPropertyValue( "RefValue" );
@@ -970,7 +973,7 @@ Writer& OutHTML_DrawFrmFmtAsControl( Writer& rWrt,
sOut = "\"";
}
- sOut = sOptions;
+ sOut += " " + sOptions;
if( TYPE_IMAGE == eType )
{