diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp
index e028adb..98c44f7 100644
--- a/src/gui/text/qcssparser.cpp
+++ b/src/gui/text/qcssparser.cpp
@@ -165,6 +165,7 @@ static const QCssKnownValue properties[NumProperties - 1] = {
     { "text-underline-style", TextUnderlineStyle },
     { "top", Top },
     { "vertical-align", VerticalAlignment },
+    { "visibility", Visibility },
     { "white-space", Whitespace },
     { "width", Width }
 };
@@ -182,6 +183,7 @@ static const QCssKnownValue values[NumKnownValues - 1] = {
     { "button-text", Value_ButtonText },
     { "center", Value_Center },
     { "circle", Value_Circle },
+    { "collapse", Value_Collapse },
     { "dark", Value_Dark },
     { "dashed", Value_Dashed },
     { "decimal", Value_Decimal },
@@ -192,6 +194,7 @@ static const QCssKnownValue values[NumKnownValues - 1] = {
     { "dotted", Value_Dotted },
     { "double", Value_Double },
     { "groove", Value_Groove },
+    { "hidden", Value_Hidden },
     { "highlight", Value_Highlight },
     { "highlighted-text", Value_HighlightedText },
     { "inset", Value_Inset },
@@ -237,6 +240,7 @@ static const QCssKnownValue values[NumKnownValues - 1] = {
     { "upper-alpha", Value_UpperAlpha },
     { "upper-roman", Value_UpperRoman },
     { "uppercase", Value_Uppercase },
+    { "visible", Value_Visible },
     { "wave", Value_Wave },
     { "window", Value_Window },
     { "window-text", Value_WindowText },
@@ -245,10 +249,10 @@ static const QCssKnownValue values[NumKnownValues - 1] = {
 };
 
 //Map id to strings as they appears in the 'values' array above
-static const short indexOfId[NumKnownValues] = { 0, 41, 48, 42, 49, 54, 35, 26, 70, 71, 25, 43, 5, 63, 47,
-    29, 58, 59, 27, 51, 61, 6, 10, 39, 56, 19, 13, 17, 18, 20, 21, 50, 24, 46, 67, 37, 3, 2, 40, 62, 16,
-    11, 57, 14, 32, 64, 33, 65, 55, 66, 34, 69, 8, 28, 38, 12, 36, 60, 7, 9, 4, 68, 53, 22, 23, 30, 31,
-    1, 15, 0, 52, 45, 44 };
+static const short indexOfId[NumKnownValues] = { 0, 43, 50, 44, 51, 56, 37, 28, 73, 74, 27, 45, 5, 65, 49,
+    31, 60, 61, 29, 53, 63, 6, 10, 41, 58, 20, 14, 18, 19, 21, 22, 52, 26, 48, 70, 39, 3, 2, 42, 64, 17,
+    11, 59, 15, 34, 66, 35, 67, 57, 68, 36, 72, 8, 30, 40, 13, 38, 62, 7, 9, 4, 71, 55, 24, 25, 32, 33,
+    1, 16, 0, 54, 47, 46, 12, 23, 69 };
 
 QString Value::toString() const
 {
diff --git a/src/gui/text/qcssparser_p.h b/src/gui/text/qcssparser_p.h
index ecc07e3..41332ee 100644
--- a/src/gui/text/qcssparser_p.h
+++ b/src/gui/text/qcssparser_p.h
@@ -184,6 +184,7 @@ enum Property {
     QtListNumberPrefix,
     QtListNumberSuffix,
     LineHeight,
+    Visibility,
     NumProperties
 };
 
@@ -267,6 +268,10 @@ enum KnownValue {
     Value_On,
     Value_Off,
 
+    Value_Collapse,
+    Value_Hidden,
+    Value_Visible,
+
     NumKnownValues
 };
 
diff --git a/src/gui/text/qtexthtmlparser.cpp b/src/gui/text/qtexthtmlparser.cpp
index 3342a98..1b0f292 100644
--- a/src/gui/text/qtexthtmlparser.cpp
+++ b/src/gui/text/qtexthtmlparser.cpp
@@ -1339,6 +1339,20 @@ void QTextHtmlParserNode::applyCssDeclarations(const QVector<QCss::Declaration>
         case QCss::QtListNumberSuffix:
             textListNumberSuffix = decl.d->values.first().variant.toString();
             break;
+        case QCss::Visibility:
+            switch(decl.d->values.first().variant.toInt()) {
+            case QCss::Value_Visible:
+                // ignore
+                break;
+            case QCss::Value_Hidden:
+                charFormat.setForeground(QBrush(QColor(0,0,0,0)));
+                break;
+            case QCss::Value_Collapse:
+                // thinking of something
+                break;
+            default: break;
+            }
+            break;
         default: break;
         }
     }
