PageRenderTime 28ms CodeModel.GetById 16ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 1ms

/platform/external/webkit/WebCore/accessibility/AccessibilityList.cpp

https://github.com/aharish/totoro-gb-opensource-update2
C++ | 109 lines | 55 code | 21 blank | 33 comment | 12 complexity | b722f15d4deea168de2bcb76e4db7f8e MD5 | raw file
  1/*
  2 * Copyright (C) 2008 Apple Inc. All rights reserved.
  3 *
  4 * Redistribution and use in source and binary forms, with or without
  5 * modification, are permitted provided that the following conditions
  6 * are met:
  7 *
  8 * 1.  Redistributions of source code must retain the above copyright
  9 *     notice, this list of conditions and the following disclaimer.
 10 * 2.  Redistributions in binary form must reproduce the above copyright
 11 *     notice, this list of conditions and the following disclaimer in the
 12 *     documentation and/or other materials provided with the distribution.
 13 * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
 14 *     its contributors may be used to endorse or promote products derived
 15 *     from this software without specific prior written permission.
 16 *
 17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
 18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 20 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
 21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 27 */
 28
 29#include "config.h"
 30#include "AccessibilityList.h"
 31
 32#include "AXObjectCache.h"
 33#include "HTMLNames.h"
 34#include "RenderObject.h"
 35
 36using namespace std;
 37
 38namespace WebCore {
 39    
 40using namespace HTMLNames;
 41
 42AccessibilityList::AccessibilityList(RenderObject* renderer)
 43    : AccessibilityRenderObject(renderer)
 44{
 45}
 46
 47AccessibilityList::~AccessibilityList()
 48{
 49}
 50
 51PassRefPtr<AccessibilityList> AccessibilityList::create(RenderObject* renderer)
 52{
 53    return adoptRef(new AccessibilityList(renderer));
 54}
 55
 56bool AccessibilityList::accessibilityIsIgnored() const
 57{
 58    // Is the platform interested in the object?
 59    if (accessibilityPlatformIncludesObject() == IgnoreObject)
 60        return true;
 61    
 62    // lists don't appear on tiger/leopard on the mac
 63#if ACCESSIBILITY_LISTS
 64    return false;
 65#else
 66    return true;
 67#endif
 68}    
 69    
 70bool AccessibilityList::isUnorderedList() const
 71{
 72    if (!m_renderer)
 73        return false;
 74    
 75    Node* node = m_renderer->node();
 76
 77    // The ARIA spec says the "list" role is supposed to mimic a UL or OL tag.
 78    // Since it can't be both, it's probably OK to say that it's an un-ordered list.
 79    // On the Mac, there's no distinction to the client.
 80    if (ariaRoleAttribute() == ListRole)
 81        return true;
 82    
 83    return node && node->hasTagName(ulTag);
 84}
 85
 86bool AccessibilityList::isOrderedList() const
 87{
 88    if (!m_renderer)
 89        return false;
 90
 91    // ARIA says a directory is like a static table of contents, which sounds like an ordered list.
 92    if (ariaRoleAttribute() == DirectoryRole)
 93        return true;
 94
 95    Node* node = m_renderer->node();
 96    return node && node->hasTagName(olTag);    
 97}
 98
 99bool AccessibilityList::isDefinitionList() const
100{
101    if (!m_renderer)
102        return false;
103    
104    Node* node = m_renderer->node();
105    return node && node->hasTagName(dlTag);    
106}
107    
108    
109} // namespace WebCore