summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/HTML5/Parser/DOMTreeBuilder.php5
-rw-r--r--test/HTML5/Html5Test.php19
2 files changed, 22 insertions, 2 deletions
diff --git a/src/HTML5/Parser/DOMTreeBuilder.php b/src/HTML5/Parser/DOMTreeBuilder.php
index ccad229..b26860d 100644
--- a/src/HTML5/Parser/DOMTreeBuilder.php
+++ b/src/HTML5/Parser/DOMTreeBuilder.php
@@ -274,7 +274,8 @@ class DOMTreeBuilder implements EventHandler
// SPECIAL TAG HANDLING:
// Spec says do this, and "don't ask."
- if ($name == 'image') {
+ // find the spec where this is defined... looks problematic
+ if ($name == 'image' && !($this->insertMode === static::IM_IN_SVG || $this->insertMode === static::IM_IN_MATHML)) {
$name = 'img';
}
@@ -681,4 +682,4 @@ class DOMTreeBuilder implements EventHandler
{
return $this->current->tagName == $tagname;
}
-} \ No newline at end of file
+}
diff --git a/test/HTML5/Html5Test.php b/test/HTML5/Html5Test.php
index 78ac80f..77643c4 100644
--- a/test/HTML5/Html5Test.php
+++ b/test/HTML5/Html5Test.php
@@ -28,6 +28,25 @@ class Html5Test extends TestCase
return $out;
}
+
+ public function testImageTagsInSvg()
+ {
+ $html = "<!DOCTYPE html>
+ <html>
+ <head>
+ <title>foo</title>
+ </head>
+ <body>
+ <svg>
+ <image height=\"10\" width=\"10\"></image>
+ </svg>
+ </body>
+ </html>";
+ $doc = $this->html5->loadHTML($html);
+ $this->assertInstanceOf('DOMElement', $doc->getElementsByTagName('image')->item(0));
+ $this->assertEmpty($this->html5->getErrors());
+ }
+
public function testLoadOptions()
{
// doc