diff --git a/Userland/Libraries/LibWeb/HTML/Parser/HTMLToken.h b/Userland/Libraries/LibWeb/HTML/Parser/HTMLToken.h
index 548e3193a3..8a946397ca 100644
--- a/Userland/Libraries/LibWeb/HTML/Parser/HTMLToken.h
+++ b/Userland/Libraries/LibWeb/HTML/Parser/HTMLToken.h
@@ -37,6 +37,7 @@ public:
struct Position {
size_t line { 0 };
size_t column { 0 };
+ size_t byte_offset { 0 };
};
struct Attribute {
diff --git a/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp b/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp
index c38a78102e..aa58a28c0b 100644
--- a/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Parser/HTMLTokenizer.cpp
@@ -223,6 +223,7 @@ void HTMLTokenizer::skip(size_t count)
} else {
m_source_positions.last().column++;
}
+ m_source_positions.last().byte_offset += m_utf8_iterator.underlying_code_point_length_in_bytes();
}
++m_utf8_iterator;
}