diff --git a/HTMLKit/HTMLStackOfOpenElements.m b/HTMLKit/HTMLStackOfOpenElements.m
index 1021498..1531564 100644
--- a/HTMLKit/HTMLStackOfOpenElements.m
+++ b/HTMLKit/HTMLStackOfOpenElements.m
@@ -187,6 +187,20 @@
@"template": @(HTMLNamespaceHTML)}];
}
+- (HTMLElement *)hasElementInSelectScopeWithTagName:(NSString *)tagName
+{
+ for (HTMLElement *node in _stack.reverseObjectEnumerator) {
+ if ([node.tagName isEqualToString:tagName]) {
+ return node;
+ }
+ if (!(node.namespace == HTMLNamespaceHTML &&
+ [node.tagName isEqualToAny:@"optgroup", @"option", nil])) {
+ return nil;
+ }
+ }
+ return nil;
+}
+
- (HTMLElement *)hasElementInSpecificScopeWithTagName:(NSString *)tagName
andElementTypes:(NSDictionary *)elementTypes
{