diff --git a/accessible/src/html/HTMLSelectAccessible.cpp b/accessible/src/html/HTMLSelectAccessible.cpp
index 2967cbc9ab95..fc1f7de8dd5c 100644
--- a/accessible/src/html/HTMLSelectAccessible.cpp
+++ b/accessible/src/html/HTMLSelectAccessible.cpp
@@ -16,15 +16,10 @@
#include "States.h"
#include "nsCOMPtr.h"
-#include "nsIFrame.h"
+#include "nsHTMLOptionElement.h"
#include "nsIComboboxControlFrame.h"
-#include "nsIDocument.h"
-#include "nsIDOMHTMLInputElement.h"
-#include "nsIDOMHTMLOptGroupElement.h"
-#include "nsIDOMHTMLSelectElement.h"
+#include "nsIFrame.h"
#include "nsIListControlFrame.h"
-#include "nsIServiceManager.h"
-#include "nsIMutableArray.h"
using namespace mozilla::a11y;
@@ -238,30 +233,24 @@ HTMLSelectOptionAccessible::NativeState()
return state;
// Are we selected?
- bool isSelected = false;
- nsCOMPtr option(do_QueryInterface(mContent));
- if (option) {
- option->GetSelected(&isSelected);
- if (isSelected)
- state |= states::SELECTED;
- }
+ nsHTMLOptionElement* option = nsHTMLOptionElement::FromContent(mContent);
+ bool selected = option && option->Selected();
+ if (selected)
+ state |= states::SELECTED;
if (selectState & states::OFFSCREEN) {
state |= states::OFFSCREEN;
- }
- else if (selectState & states::COLLAPSED) {
+ } else if (selectState & states::COLLAPSED) {
//