class Capybara::Selenium::Node

def disabled?

def disabled?
  return true unless native.enabled?
  # workaround for selenium-webdriver/geckodriver reporting elements as enabled when they are nested in disabling elements
  if driver.marionette?
    if %w[option optgroup].include? tag_name
      find_xpath("parent::*[self::optgroup or self::select]")[0].disabled?
    else
      !find_xpath("parent::fieldset[@disabled] | ancestor::*[not(self::legend) or preceding-sibling::legend][parent::fieldset[@disabled]]").empty?
    end
  else
    false
  end
end