Вы находитесь на странице: 1из 30

BlackBerry Java Application

Accessibility
Versão: 5.0

Guia do desenvolvedor
Publicado: 2010-04-06
SWD-811646-0406011425-012
Conteúdo
1 Compreendendo a acessibilidade............................................................................................................................................. 2
Aplicativos acessíveis..................................................................................................................................................................... 2
Tecnologia de auxílio...................................................................................................................................................................... 3
Suporte a acessibilidade em dispositivos BlackBerry................................................................................................................. 3

2 Prática recomendada: Projetando aplicativos acessíveis..................................................................................................... 4

3 Desenvolvendo aplicativos acessíveis do dispositivo BlackBerry usando a API Acessibilidade..................................... 6


Conceitos da API Acessibilidade................................................................................................................................................... 6
Introdução à API Acessibilidade.................................................................................................................................................... 6
Aplicativo de amostra AccessibilityDemo.................................................................................................................................... 9
Configurar o aplicativo de amostra AccessibilityDemo no BlackBerry Java Plug-in para Eclipse................................ 9
Configurar o aplicativo de amostra AccessibilityDemo no BlackBerry Java Development Environment.................... 10
Explorar o aplicativo de amostra AccessibilityDemo......................................................................................................... 11
Notificar um aplicativo com tecnologia de auxílio quando a interface é alterada................................................................. 12
Alterações na interface que desencadeiam uma notificação a um aplicativo com tecnologia de auxílio........................... 12
Estados e propriedades de componentes de interface............................................................................................................... 12
Fornecer informações sobre alterações na interface a um aplicativo com tecnologia de auxílio......................................... 13
Fornecer informações sobre alterações de texto a um aplicativo com tecnologia de auxílio................................................ 16
Fornecer acesso às informações de uma tabela a um aplicativo com tecnologia de auxílio................................................. 18
Fornecer acesso a valores numéricos a um aplicativo com tecnologia de auxílio.................................................................. 19
Habilitar um aplicativo com tecnologia de auxílio a receber notificações de eventos de interface..................................... 20
Testar um aplicativo acessível do dispositivo BlackBerry........................................................................................................... 21

4 Recursos relacionados................................................................................................................................................................ 23

5 Fornecer comentários................................................................................................................................................................. 24

6 Histórico da revisão de documentos........................................................................................................................................ 25

7 Aviso legal..................................................................................................................................................................................... 26
Guia do desenvolvedor Compreendendo a acessibilidade

Compreendendo a acessibilidade 1
Acessibilidade refere-se à extensão até onde um produto ou serviço pode ser usado pelo máximo possível de pessoas. Neste
contexto, acessibilidade significa projetar aplicativos de modo que pessoas com deficiência física possam usá-los em um
dispositivo BlackBerry®.
Ao projetar seu aplicativo para dispositivo BlackBerry, leve em consideração os seguintes usuários:
• cegos
• deficientes visuais
• daltônicos
• surdos-mudos
• deficientes auditivos
• pessoas com deficiência na fala
• pessoas com problemas motores
• pessoas com deficiência cognitiva ou dificuldade de aprendizado
Assim como qualquer outro grupo de usuários, os deficientes físicos têm necessidades, desejos e expectativas sobre o
comportamento de aplicativos. Estes são alguns dos benefícios obtidos ao tornar seus aplicativos acessíveis ao máximo possível
de usuários:
• Responsabilidade social: Tornar seu aplicativo mais fácil para que pessoas com deficiência física se beneficiem da
funcionalidade oferecida pode promover a equidade.
• Fatia de mercado: Assegurar que seu aplicativo pode ser usado por pessoas com deficiência física aumenta o número de
pessoas que podem comprar e se beneficiar do aplicativo.
• Conformidade: Obedecer às diretrizes e requisitos regulatórios aplicáveis (como a Seção 508 do Rehabilitation Act nos
Estados Unidos), que ditam que seu aplicativo deve ser acessível a deficientes físicos, pode permitir a sua entrada em certos
mercados.

Aplicativos acessíveis
Um aplicativo acessível é aquele que pode ser usado eficientemente por pessoas com deficiência física. Tornar seu aplicativo
acessível é um processo que envolve as seguintes atividades:
• Projetar a interface do aplicativo tendo em mente todos os seus usuários, inclusive aqueles com deficiência física.
• Fornecer informações sobre seu aplicativo a tecnologias de auxílio, como leitores de tela. Por exemplo, um aplicativo acessível
talvez forneça a um leitor de tela informações sobre um campo de texto exibido em uma tela. O leitor de tela pode converter
o texto em fala para pessoas cegas ou com deficiência visual.
A RIM oferece as melhores práticas a serem seguidas para projetar a interface de um aplicativo acessível; e a RIM também oferece
a API Acessibilidade, que seu aplicativo pode usar para fornecer informações às tecnologias de auxílio.

2
Guia do desenvolvedor Tecnologia de auxílio

Informações relacionadas
Prática recomendada: Projetando aplicativos acessíveis, 4
Desenvolvendo aplicativos acessíveis do dispositivo BlackBerry usando a API Acessibilidade, 6

Tecnologia de auxílio
Um dispositivo ou aplicativo com tecnologia de auxílio pode responder às informações que ele recebe de um aplicativo acessível
e tornar o aplicativo utilizável por deficientes físicos. Um aplicativo de amostra com tecnologia de auxílio é o leitor de tela. Um
leitor de tela pode receber informações sobre os itens que a tela do dispositivo BlackBerry® exibe e as ações decorrentes. O leitor
de tela pode representar a exibição ou ação ao usuário por outros meios, como por saída de áudio ou braille.
Alguns exemplos de dispositivos com tecnologia de auxílio são os ampliadores de tela e os teclados projetados para uso por
pessoas com problemas motores.
A RIM fornece a API Acessibilidade, que você pode usar em seus aplicativos com tecnologia de auxílio para receber informações
de aplicativos acessíveis.
Informações relacionadas
Habilitar um aplicativo com tecnologia de auxílio a receber notificações de eventos de interface, 20

Suporte a acessibilidade em dispositivos BlackBerry


Um dispositivo BlackBerry® pode incluir os seguintes recursos para facilitar seu uso por deficientes físicos:
• viva-voz
• alertas e notificações visuais, audíveis e vibratórios
• compatibilidade com aparelhos auditivos (em alguns modelos)
• toques individuais para identificar quem está chamando
• fontes e temas personalizáveis
• zoom de navegador
• configurações de exibição de contraste reverso e escala de cinza
• AutoTexto
• tecnologia SureType® com previsão de texto
• tela de toque SurePress™
Para obter mais informações sobre acessibilidade em dispositivos BlackBerry, visite www.blackberry.com/accessibility.

3
Guia do desenvolvedor Prática recomendada: Projetando aplicativos acessíveis

Prática recomendada: Projetando aplicativos acessíveis 2


Diretrizes para projeto de interface
• Concentre-se na tarefa imediata dos usuários. Exiba apenas as informações de que os usuários precisem em um determinado
momento. Por exemplo, simplifique a seleção e a apresentação dos dados exibindo as informações em uma ordem lógica.
• Agrupe os controles de acordo com o uso comum ou com a funcionalidade comum para minimizar a carga cognitiva para
os usuários.
• Forneça espaço suficiente entre os controles de modo que os usuários possam distinguir um controle do outro.
• Use componentes de interface de forma coerente para que os usuários possam reconhecer componentes comuns da
interface com facilidade. Por exemplo, use botões para iniciar ações. Evite usar outros controles, como hiperlinks, para iniciar
ações.
• Se você estiver projetando um aplicativo que ofereça suporte a um dispositivo de tecnologia de auxílio, como um leitor de
tela, e não usar APIs de interface de usuário do BlackBerry® nem oferecer suporte à API Acessibilidade, exponha os
componentes de interface exclusivos do seu aplicativo de forma programática, de modo que a tecnologia de auxílio possa
interpretar as informações.
Diretrizes para navegação
• Quando telas de aplicativo são abertas, defina o foco no controle que os usuários têm mais probabilidade de usar primeiro.
Este método simplifica as tarefas para os usuários.
• Indique claramente o componente de interface que está em foco. Por exemplo, use texto branco em fundo azul.
• Onde possível, permita que os usuários usem o teclado para iniciar as ações mais frequentemente usadas no aplicativo. Por
exemplo, permita que os usuários pressionem a tecla Enter para selecionar um item de menu.
• Onde possível, informe aos usuários sobre eventos importantes, como lembretes de calendário, de diversas maneiras. Por
exemplo, forneça um efeito sonoro e uma notificação visual para o lembrete.
• Onde possível, aplique redundância para fornecer aos usuários várias maneiras de interagir com ações comuns. Por exemplo,
use a tecla Menu para permitir que os usuários acessem o menu completo, e o trackball ou trackpad para permitir que os
usuários acessem o menu contextual. Em dispositivos BlackBerry com tela sensível ao toque, em alguns casos, os usuários
podem clicar na tela para acessar o menu contextual.
• Em cada menu, defina o item de menu padrão como sendo o item que os usuários provavelmente irão selecionar mais. O
item padrão no menu contextual deve ser o mesmo item padrão no menu completo.
• Se um processo ou aplicativo requerer que os usuários executem uma série de etapas extensas ou complexas, liste todas
as etapas ou telas onde possível. Identifique as etapas que foram realizadas, as que estão em curso e as que ainda não
foram iniciadas. Por exemplo, inclua um índice em assistentes. Se os usuários fecharem um assistente, eles poderão usar o
índice para retornar a um local específico no assistente.
Diretrizes para texto
• Forneça mensagens específicas. Para oferecer suporte à recuperação de erros, use uma sentença curta que explique
claramente a razão para exibir a mensagem e as ações para solucionar o erro.
• Onde possível, use as configurações de fonte que o usuário definiu.
Diretrizes para cores e imagens

4
Guia do desenvolvedor Prática recomendada: Projetando aplicativos acessíveis

• Evite usar cores como o único meio de comunicação. Por exemplo, em vez de usar apenas texto vermelho para notificar os
usuários de uma ação crítica, experimente colocar um símbolo vermelho, como um ponto de exclamação vermelho, ao lado
do texto.
• Escolha cores altamente contrastantes, como preto, branco, azul-marinho e amarelo.
• Para ajudar os usuários a distinguirem entre componentes de interface adjacentes (como mensagens alternadas em um
thread de mensagens de texto SMS) e entre cores de primeiro plano e cores de fundo, use cores que resultem em uma
proporção de contraste de 7:1 ou mais alta.
• Adicione informações contextuais às imagens, como nome de imagem, para comunicar o significado e o contexto das
imagens.

5
Guia do desenvolvedor Desenvolvendo aplicativos acessíveis do dispositivo BlackBerry usando a API Acessibilidade

Desenvolvendo aplicativos acessíveis do dispositivo 3


BlackBerry usando a API Acessibilidade

Conceitos da API Acessibilidade


Antes de usar a API Acessibilidade, você deve entender os seguintes conceitos.

Conceito Descrição
função (role) Cada objeto de interface acessível tem uma função. Uma função especifica o tipo de componente de
interface. As funções incluem campos de texto, rótulos, telas, caixas de diálogo, listas, ícones, botões de
opção, tabelas, caixas de seleção e botões.

A interface AccessibleRole na API Acessibilidade define funções como constantes.


estado (state) Cada objeto de interface acessível tem um estado. Um estado especifica o estado atual do objeto como
uma máscara de sinalizadores. Os estados incluem focalizável, focalizado, marcado, ativo, selecionado e
editável. Os objetos podem ter mais de um estado ao mesmo tempo, como focalizável e focalizado.

A interface AccessibleState define estados como constantes.


contêiner Alguns objetos de interface acessíveis são contêineres. Contêineres são elementos visuais, como telas,
(container) caixas de diálogo, listas e menus, que contêm subelementos.

Você pode descobrir os subelementos de um contêiner com métodos na interface AccessibleContext.


tabela (table) Uma tabela é um tipo de contêiner que exibe subelementos em um formato tabular.

Exemplos de tabelas são as exibições mensal e semanal do calendário e uma tabela em uma página da Web.

Para descobrir as propriedades de tabela para um objeto de interface acessível, use os métodos na interface
AccessibleTable.

Introdução à API Acessibilidade


A API Acessibilidade permite que você desenvolva aplicativos acessíveis para dispositivos BlackBerry® que forneçam informações
a aplicativos com tecnologia de auxílio, como leitores de tela. Os leitores de tela e outras tecnologias de auxílio facilitam o uso
do aplicativo acessível por pessoas deficientes. Componentes normais de interface, como TextField, fornecem

6
Guia do desenvolvedor Introdução à API Acessibilidade

automaticamente informações a aplicativos com tecnologia de auxílio. Se você usar componentes de interface personalizados
(componentes que complementam os componentes normais de interface), deverá usar a API Acessibilidade para fornecer
informações a aplicativos com tecnologia de auxílio.
Para todos os componentes de interface personalizados em seu aplicativo acessível, você deve implementar a interface
net.rim.device.api.ui.accessibility.AccessibleContext. Os métodos nesta interface identificam as
informações que você deseja enviar a um aplicativo com tecnologia de auxílio. Por exemplo, em um componente de interface
personalizado que implementa AccessibleContext, getAccessibleRole() retorna a função do controle, como
AccessibleRole.TEXT_FIELD. Se o seu aplicativo contiver campos de texto personalizados, campos numéricos
personalizados ou tabelas personalizadas, você também poderá usar as interfaces AccessibleText, AccessibleValue
ou AccessibleTable.
Um aplicativo com tecnologia de auxílio é registrado como um ouvinte de eventos de acessibilidade. Quando ocorre um evento
de acessibilidade em um componente de interface personalizado, o aplicativo acessível invoca o método
accessibleEventOccurred() no aplicativo com tecnologia de auxílio registrado e fornece as informações de evento. O
aplicativo com tecnologia de auxílio manipula o evento e executa a ação apropriada, como falar um texto ou reproduzir um som.
O seguinte diagrama mostra o relacionamento entre um aplicativo acessível e um aplicativo com tecnologia de auxílio. O aplicativo
de amostra AccessibilityDemo que é fornecido com o BlackBerry® Java® Development Environment e o BlackBerry® Java® Plug-
in para Eclipse® 4.6.1 e posterior é estruturado desta maneira.

7
Guia do desenvolvedor Introdução à API Acessibilidade

8
Guia do desenvolvedor Aplicativo de amostra AccessibilityDemo

Informações relacionadas
Aplicativo de amostra AccessibilityDemo, 9

Aplicativo de amostra AccessibilityDemo


O BlackBerry® Java® Development Environment 4.6.1 e posterior e o BlackBerry® Java® Plug-in para Eclipse® com BlackBerry
Component Package 4.6.1 e posterior fornecem um aplicativo de amostra que demonstra a comunicação entre um aplicativo
acessível e um aplicativo com tecnologia de auxílio. O aplicativo de amostra também pode ser baixado em http://
www.blackberry.com/go/accessibilitysample.
O aplicativo AccessibilityDemo consiste em dois projetos.

Projeto Descrição
CustomComponentsDemo O CustomComponentsDemo é o aplicativo acessível. A tela contém componentes de
interface personalizados que implementam a interface AccessibleContext e, se
apropriado, a interface AccessibleText, AccessibleTable ou
AccessibleValue.

A interface AccessibleContext fornece informações sobre o objeto acessível, como


seu valor e estado, ao aplicativo com tecnologia de auxílio.

Os componentes de interface transmitem eventos de acessibilidade, como, por exemplo,


quando o foco é definido em um componente ou quando o valor de um componente é
alterado.
ScreenReaderDemo O ScreenReaderDemo é o aplicativo com tecnologia de auxílio, um leitor de tela. A classe
ScreenReader é registrada como ouvinte de eventos de acessibilidade e implementa
a interface AccessibleEventListener. O ScreenReader recebe os eventos de
acessibilidade que CustomComponentsDemo transmite.

Para fins de demonstração, o leitor de tela envia instruções System.out.println


() para lidar com os eventos de acessibilidade.

Informações relacionadas
Explorar o aplicativo de amostra AccessibilityDemo, 11
Configurar o aplicativo de amostra AccessibilityDemo no BlackBerry Java Plug-in para Eclipse, 9
Configurar o aplicativo de amostra AccessibilityDemo no BlackBerry Java Development Environment, 10

Configurar o aplicativo de amostra AccessibilityDemo no BlackBerry Java Plug-in para Eclipse


Antes de começar: Verifique se você está usando o BlackBerry® Java® Plug-in para Eclipse® 1.1 ou posterior com BlackBerry
JDE Component Package 4.6.1 ou posterior.

9
Guia do desenvolvedor Aplicativo de amostra AccessibilityDemo

1. No Eclipse, abra uma área de trabalho.


2. No menu File (Arquivo), clique em Import (Importar).
3. Na caixa de diálogo Import (Importar), expanda a pasta BlackBerry e selecione a opção Import BlackBerry Samples
(Importar amostras do BlackBerry).
4. Clique em Next (Avançar).
5. Na caixa de diálogo Import BlackBerry Samples (Importar amostras do BlackBerry), clique em Deselect All (Desmarcar
tudo).
6. Marque a caixa de seleção ao lado do projeto CustomComponentsDemo.
A caixa de seleção ao lado do projeto ScreenReaderDemo é automaticamente selecionada.
7. Clique em Finish (Concluir).
Os projetos CustomComponentsDemo e ScreenReaderDemo são exibidos no Package Explorer. O BlackBerry Java Plug-in para
Eclipse define o caminho de criação do Java em CustomComponentsDemo de modo a incluir ScreenReaderDemo, ao qual
CustomComponentsDemo faz referência.
Informações relacionadas
Aplicativo de amostra AccessibilityDemo, 9
Configurar o aplicativo de amostra AccessibilityDemo no BlackBerry Java Development Environment, 10

Configurar o aplicativo de amostra AccessibilityDemo no BlackBerry Java Development


Environment
Antes de começar: Verifique se você está usando o BlackBerry® Java® Development Environment 4.6.1 ou posterior.

1. No BlackBerry JDE, abra a área de trabalho samples (amostras).


a. No menu File (Arquivo), clique em Open Workspace (Abrir área de trabalho).
b. Navegue até a pasta samples.
c. Selecione o arquivo samples.jdw.
d. Clique em Open (Abrir).
2. Expanda a pasta accessibilitydemo.
3. Clique com o botão direito do mouse no projeto CustomComponentsDemo e clique em Activate Project (Ativar projeto).
4. Clique com o botão direito do mouse no projeto ScreenReaderDemo e clique em Activate Project (Ativar projeto).
Informações relacionadas
Aplicativo de amostra AccessibilityDemo, 9
Configurar o aplicativo de amostra AccessibilityDemo no BlackBerry Java Plug-in para Eclipse, 9

10
Guia do desenvolvedor

Explorar o aplicativo de amostra AccessibilityDemo


Você pode explorar o aplicativo de amostra AccessibilityDemo para ajudar a aumentar seu entendimento da comunicação entre
um aplicativo acessível e um aplicativo com tecnologia de auxílio.
Antes de começar: Configure o aplicativo de amostra no BlackBerry® Java® Plug-in para Eclipse® ou no BlackBerry® Java®
Development Environment.

1. Execute uma das seguintes ações para exibir a janela de console:


• No BlackBerry Java Plug-in para Eclipse, no menu Window (Janela), selecione Show View > Console (Exibir > Console).
• No BlackBerry JDE, no menu View (Exibir), clique em Output (Saída) e escolha a guia Debug (Depurar).
2. Execute uma das seguintes ações para iniciar uma sessão de depuração:
• No BlackBerry Java Plug-in para Eclipse, clique com o botão direito do mouse no projeto CustomComponentsDemo
no Project Explorer e, em seguida, clique no menu Debug As (Depurar como) e selecione BlackBerry Simulator
(Simulador do BlackBerry).
• No BlackBerry JDE, crie o projeto CustomComponentsDemo e o projeto ScreenReaderDemo e, no menu Debug
(Depurar), clique em Go (Ir).
3. No BlackBerry Smartphone Simulator, execute o aplicativo AccessibilityDemo na pasta Downloads.
O simulador exibe a tela inicial do aplicativo, que é composta de uma fileira de ícones, uma tabela, um campo numérico
personalizado e um campo de texto personalizado.
4. No BlackBerry Smartphone Simulator, selecione o campo numérico sob a tabela. Pressione a tecla U no teclado do simulador
duas vezes para aumentar o valor do campo.
A janela de console exibe a saída normal do aplicativo com tecnologia de auxílio (um leitor de tela). Um leitor de tela ouve os
eventos nos componentes de interface e processa-os. O leitor de tela no aplicativo de amostra AccessibilityDemo responde aos
eventos com instruções System.out.println(), que a janela de console exibe.
As instruções println() mostram a comunicação entre o aplicativo de amostra acessível e o leitor de tela de amostra. Um
leitor de tela real responde aos eventos em um aplicativo acessível de uma maneira útil, como, por exemplo, falando o texto.
ScreenReader Context:
com.rim.samples.device.accessibilitydemo.customcomponentsdemo.ValueComponent@fcbe0dd8
---------------- SOUND: My Gauge Field value changed to 51
ScreenReader Context:
com.rim.samples.device.accessibilitydemo.customcomponentsdemo.ValueComponent@fcbe0dd8
---------------- SOUND: My Gauge Field value changed to 52

Informações relacionadas
Aplicativo de amostra AccessibilityDemo, 9

11
Guia do desenvolvedor Notificar um aplicativo com tecnologia de auxílio quando a interface é alterada

Notificar um aplicativo com tecnologia de auxílio quando a interface é


alterada
Você pode habilitar um aplicativo do dispositivo BlackBerry® que use componentes de interface personalizados a enviar
informações a um aplicativo com tecnologia de auxílio usando o pacote net.rim.device.api.ui.accessibility.
Quando um componente de interface personalizado é alterado, um aplicativo com tecnologia de auxílio recebe uma notificação
sobre a alteração e pode recuperar mais informações sobre a alteração do componente de interface personalizado.
A notificação sobre a alteração contém as seguintes informações:
• nome do componente de interface personalizado
• tipo de evento, por exemplo, o conteúdo do componente de interface personalizado que é alterado ou o componente de
interface personalizado que está em foco
• valor do componente de interface personalizado antes do evento
• valor do componente de interface personalizado depois do evento
Por exemplo, considere um aplicativo do dispositivo BlackBerry que use uma classe personalizada denominada
myTextField que estenda a classe TextField. Quando o usuário de um dispositivo BlackBerry altera o texto de uma instância
myTextField, um aplicativo com tecnologia de auxílio recebe uma notificação e recupera informações sobre o texto que o
usuário alterou.

Alterações na interface que desencadeiam uma notificação a um aplicativo


com tecnologia de auxílio
As seguintes alterações em um componente de interface podem desencadear uma notificação a um aplicativo com tecnologia
de auxílio:
• uma alteração na posição de um cursor
• uma alteração no nome
• uma alteração no texto
• uma alteração em um subcomponente
• uma alteração no estado
• uma alteração no valor numérico

Estados e propriedades de componentes de interface


Um componente de interface pode ter um ou mais dos seguintes estados:
• focalizado

12
Guia do desenvolvedor Fornecer informações sobre alterações na interface a um aplicativo com tecnologia de auxílio

• focalizável
• expandido
• expansível
• recolhido
• selecionado
• selecionável
• pressionado
• marcado
• editável
• ativo
• ocupado
Um componente de interface pode ter uma ou mais das seguintes propriedades:
• modal
• horizontal
• vertical
• uma linha
• multilinha

Fornecer informações sobre alterações na interface a um aplicativo com


tecnologia de auxílio
1. Importe a interface necessária.
import net.rim.device.api.ui.accessibility.AccessibleContext;
AccessibleContext fornece as informações básicas de acessibilidade sobre um componente de interface
personalizado.
2. Crie uma classe que estenda a classe Field e implemente AccessibleContext.
public class MyCustomComponent extends Field
implements AccessibleContext
{
}
3. Crie as variáveis para armazenar as informações de acessibilidade sobre o componente de interface personalizado, como,
por exemplo, informações de estado.
private int _state = AccessibleState.UNSET;
private String _accessibleName;
private String _title;
4. Crie os métodos para adicionar e remover os estados de um componente de interface personalizado.

13
Guia do desenvolvedor Fornecer informações sobre alterações na interface a um aplicativo com tecnologia de auxílio

protected void addAccessibleStates(int states)


{
_state = _state & ~AccessibleState.UNSET;
_state = _state | states;
}
protected void removeAccessibleStates(int states)
{
_state = _state & ~states;
}
public void setAccessibleName(String accessibleName)
{
_accessibleName = accessibleName;
}
5. Implemente os métodos get() de AccessibleContext para fornecer acesso às informações tabulares, textuais ou
numéricas de um componente de interface personalizado. Retorne null se o método não se aplicar a um componente de
interface personalizado. Por exemplo, se o componente não fornecer informações textuais, retorne o valor null em
getAccessibleText().
public AccessibleTable getAccessibleTable()
{
return null;
}
public AccessibleText getAccessibleText()
{
return null;
}
public AccessibleValue getAccessibleValue()
{
return null;
}
6. Crie um método que retorne uma instância da classe que implementa AccessibleContext para fornecer informações
de acessibilidade sobre uma alteração em um componente de interface personalizado.
public AccessibleContext getAccessibleContext()
{
return this;
}
7. Implemente AccessibleContext.getAccessibleRole() para fornecer informações sobre o tipo de componente
de interface personalizado.
public int getAccessibleRole()
{
return AccessibleRole.PANEL;
}

14
Guia do desenvolvedor

8. Implemente AccessibleContext.getAccessibleChildCount() para fornecer informações sobre o número de


subelementos acessíveis contidos em um componente de interface personalizado. Cabe a você, na condição de
desenvolvedor de um componente de interface personalizado, decidir se o componente irá ou não conter subelementos
acessíveis. Por exemplo, você pode decidir se um subelemento é um subcomponente acessível com base no fato de o
subelemento poder ou não ter foco ou o usuário poder ou não interagir com o subelemento diretamente.
public int getAccessibleChildCount()
{
return _icons.size();
}
9. Implemente AccessibleContext.getAccessibleChildAt(int) para fornecer informações sobre um
subcomponente acessível contido em um componente de interface personalizado.
public AccessibleContext getAccessibleChildAt(int arg0)
{
return (Icon) _icons.elementAt( index );
}
10. Implemente AccessibleContext.getAccessibleName() para fornecer o nome de um componente de interface
personalizado que foi alterado.
public String getAccessibleName()
{
return _accessibleName;
}
11. Crie um método que invoque AccessibleEventDispatcher.dispatchAccessibleEvent (stateChange,
oldState, newState, this) para enviar uma notificação quando o estado de um componente de interface
personalizado for alterado. Forneça os seguintes argumentos ao método:
• o evento
• o estado antigo do componente de interface personalizado
• o novo estado do componente de interface personalizado
• uma instância do componente de interface personalizado
protected void onFocus(int direction)
{
super.onFocus(direction);
int oldState = _state;
_state = _state | AccessibleState.FOCUSED;
if(isVisible())
{
AccessibleEventDispatcher.dispatchAccessibleEvent(
AccessibleContext.ACCESSIBLE_STATE_CHANGED,
new Integer(oldState),
new Integer(_state),
this);
}
}

15
Guia do desenvolvedor Fornecer informações sobre alterações de texto a um aplicativo com tecnologia de auxílio

Fornecer informações sobre alterações de texto a um aplicativo com


tecnologia de auxílio
Você pode fornecer informações de acessibilidade sobre os componentes de interface personalizados que exibem texto.

1. Importe as interfaces necessárias.


import net.rim.device.api.ui.accessibility.AccessibleContext;
import net.rim.device.api.ui.accessibility.AccessibleText;
AccessibleContext fornece as informações básicas de acessibilidade sobre um componente de interface
personalizado. AccessibleText fornece as informações sobre o texto em um componente de interface personalizado
que exibe texto.
2. Crie uma classe que estenda a classe Field e implemente AccessibleContext e AccessibleText.
public class AccessibleTextClass extends Field
implements AccessibleContext, AccessibleText
{
}
3. Crie as variáveis para armazenar as informações sobre o estado e o conteúdo do componente de interface personalizado.
private int _state;
private int _cursor, _anchor;
private String _text;
private Vector _lines;
private Vector _words;
4. Implemente AccessibleText.getAtIndex(int part, int index) para fornecer acesso ao texto em uma
determinada posição.
public String getAtIndex(int part, int index)
{
switch(part)
{
case AccessibleText.CHAR:
return String.valueOf(_text.charAt(index));
case AccessibleText.LINE:
return (String) _lines.elementAt(index);
case AccessibleText.WORD:
return (String) _words.elementAt(index);
}
return null;
}
5. Implemente AccessibleText.getSelectionStart() para fornecer acesso à posição do primeiro caractere de
texto selecionado pelo usuário de um dispositivo BlackBerry®. Retorne 0 se o usuário não puder selecionar texto.

16
Guia do desenvolvedor Fornecer informações sobre alterações de texto a um aplicativo com tecnologia de auxílio

public int getSelectionStart()


{
return _anchor;
}
6. Implemente AccessibleText.getSelectionEnd() para fornecer acesso à posição do último caractere de texto
selecionado pelo usuário de um dispositivo BlackBerry. Retorne 0 se o usuário não puder selecionar texto.
public int getSelectionEnd()
{
return _cursor;
}
7. Implemente AccessibleText.getCaretPosition() para fornecer acesso à posição do cursor dentro do texto.
Retorne 0 se o usuário não puder selecionar texto.
public int getCaretPosition()
{
return _cursor;
}
8. Implemente AccessibleText.getSelectionText() para fornecer acesso à parte selecionada do texto.
public String getSelectionText()
{
int start = getSelectionStart();
int end = getSelectionEnd();
if (start<end) {
return _text.getText(start,end);
} else {
return _text.getText(end,start);
}
}
9. Implemente AccessibleText.getLineCount() para fornecer acesso ao número de linhas de texto.
public int getLineCount()
{
return _lines.size();
}
10. Implemente AccessibleText.getCharCount() para fornecer acesso ao número de caracteres no texto.
public int getCharCount()
{
return _text.length();
}

17
Guia do desenvolvedor Fornecer acesso às informações de uma tabela a um aplicativo com tecnologia de auxílio

Fornecer acesso às informações de uma tabela a um aplicativo com


tecnologia de auxílio
Você pode fornecer informações de acessibilidade sobre os componentes de interface personalizados que exibem informações
tabulares.

1. Importe as interfaces necessárias.


import net.rim.device.api.ui.accessibility.AccessibleContext;
import net.rim.device.api.ui.accessibility.AccessibleTable;
AccessibleContext fornece as informações básicas de acessibilidade sobre um componente de interface
personalizado. AccessibleTable fornece as informações sobre os dados tabulares em um componente de interface
personalizado.
2. Crie uma classe que implemente AccessibleContext e AccessibleTable.
public class AccessibleTableClass
implements AccessibleContext, AccessibleTable
{
}
3. Crie as variáveis para armazenar as informações de acessibilidade sobre o componente de interface personalizado tabular.
private int _columnCount;
private int _rowCount;
private String[] _columnNames;
private String[][] _cells;
4. Implemente os métodos get() de AccessibleTable para fornecer as informações de acessibilidade sobre a tabela.
public int getAccessibleColumnCount()
{
return _columnCount;
}
public int getAccessibleRowCount()
{
return _rowCount;
}
public AccessibleContext[] getAccessibleColumnHeader()
{
AccessibleContext[] result = new AccessibleContext[_columnNames.length];
for( int i = 0; i < result.length; i++ )
{
result[i] = new AccessibleLabel(_columnNames[i], false);
}
return result;
}
public AccessibleContext[] getAccessibleRowHeader()

18
Guia do desenvolvedor Fornecer acesso a valores numéricos a um aplicativo com tecnologia de auxílio

{
return null;
}

Fornecer acesso a valores numéricos a um aplicativo com tecnologia de


auxílio
Você pode fornecer informações de acessibilidade sobre os componentes de interface personalizados que exibem valores
numéricos, como indicadores de andamento.

1. Importe as interfaces necessárias.


import net.rim.device.api.ui.accessibility.AccessibleContext;
import net.rim.device.api.ui.accessibility.AccessibleValue;
AccessibleContext fornece as informações básicas de acessibilidade sobre um componente de interface
personalizado. AccessibleValue fornece as informações sobre os valores numéricos em um componente de interface
personalizado que exibe valores numéricos.
2. Crie uma classe que estenda a classe Field e implemente AccessibleContext e AccessibleValue.
public class GaugeFieldAccessibleValue extends Field
implements AccessibleContext, AccessibleValue
{
}
3. Crie as variáveis para armazenar informações sobre o estado e o conteúdo do componente de interface personalizado.
private int _state;
private int _min;
private int _current;
private int _max;
4. Implemente os métodos get() de AccessibleValue para fornecer as informações sobre os valores numéricos.
public int getCurrentAccessibleValue()
{
return _current;
}
public int getMaxAccessibleValue()
{
return _max;
}
public int getMinAccessibleValue()
{
return _min;
}

19
Guia do desenvolvedor Habilitar um aplicativo com tecnologia de auxílio a receber notificações de eventos de interface

Habilitar um aplicativo com tecnologia de auxílio a receber notificações de


eventos de interface
Se você estiver construindo um aplicativo com tecnologia de auxílio, como um leitor de tela, implemente a interface
AccessibleEventListener.

1. Importe a interface necessária.


import net.rim.device.api.ui.accessibility.AccessibleEventListener;
2. Crie uma classe que implemente AccessibleEventListener.
public class ScreenReader implements AccessibleEventListener
{
}
3. Implemente AccessibleEventListener.accessibleEventOccurred(int event, Object oldValue,
Object newValue, AccessibleContext context) para responder aos eventos de interface em um aplicativo
acessível que registre este aplicativo com tecnologia de auxílio como um ouvinte de eventos acessível.
public synchronized void accessibleEventOccurred(
int event,
Object oldValue,
Object newValue,
AccessibleContext context)
{
if(context == null)
{
return;
}
int oldState = (oldValue instanceof Integer) ? ((Integer) oldValue).intValue()
: 0;
int newState = (newValue instanceof Integer) ? ((Integer) newValue).intValue()
: 0;
switch(context.getAccessibleRole())
{
case AccessibleRole.APP_ICON:
ScreenReaderHandler.handleAppIcon(event, oldState, newState, context);
break;
case AccessibleRole.ICON:
ScreenReaderHandler.handleIcon(event, oldState, newState, context);
break;
case AccessibleRole.CHECKBOX:
ScreenReaderHandler.handleCheckBox(event, oldState, newState, context);
break;
case AccessibleRole.CHOICE:
ScreenReaderHandler.handleChoice(event, oldState, newState, context);
break;

20
Guia do desenvolvedor Testar um aplicativo acessível do dispositivo BlackBerry

...
}
}

Testar um aplicativo acessível do dispositivo BlackBerry


Você pode criar um leitor de tela de teste e usá-lo para testar e depurar seu aplicativo acessível em BlackBerry® Java® Development
Environment 4.6.1 ou posterior ou BlackBerry® Java® Plug-in para Eclipse® com BlackBerry Component Package 4.6.1 ou
posterior.
Nota: Antes de disponibilizar seu aplicativo acessível a usuários de dispositivos BlackBerry, você deve testá-lo em um leitor de
tela de produção ou outro aplicativo com tecnologia de auxílio que esteja instalado em um dispositivo BlackBerry para verificar
se o aplicativo funciona da maneira desejada.
1. Importe a interface necessária.
import net.rim.device.api.ui.accessibility.AccessibleEventListener;
2. Crie uma classe de leitor de tela que implemente a interface AccessibleEventListener.
public class ScreenReader implements AccessibleEventListener
{
}
3. Implemente accessibleEventOccurred() para manipular os eventos acessíveis.
public synchronized void accessibleEventOccurred(
int event,
Object oldValue,
Object newValue,
AccessibleContext context)
{
switch(context.getAccessibleRole())
{
case AccessibleRole.APP_ICON:
ScreenReaderHandler.handleAppIcon(event, oldState, newState, context);
break;
case AccessibleRole.ICON:
ScreenReaderHandler.handleIcon(event, oldState, newState, context);
break;
...
}
}
4. Os métodos de manipulação de eventos incluem instruções println() para especificar as informações que você deseja
gerar sobre os eventos acessíveis.
static void handleIcon(int event, int oldValue, int newValue, AccessibleContext
context)
{
if(event == AccessibleContext.ACCESSIBLE_STATE_CHANGED)
{

21
Guia do desenvolvedor Testar um aplicativo acessível do dispositivo BlackBerry

if(Util.hasTransitionedToState( oldValue, newValue, AccessibleState.FOCUSED))


{
String appName = context.getAccessibleName();
System.out.println("---------------- SOUND: " + appName + " icon focused");
}
}
}
5. Em seu aplicativo acessível, registre a classe do leitor de tela como um ouvinte de eventos acessível.
_screenReader = new ScreenReader();
AccessibilityManager.setAccessibleEventListener(_screenReader);
6. Gere o aplicativo acessível e o leitor de tela.
7. Execute uma das seguintes ações para exibir a janela de console:
• No BlackBerry Java Plug-in para Eclipse, no menu Window (Janela), selecione Show View > Console (Exibir > Console).
• No BlackBerry JDE, no menu View (Exibir), clique em Output (Saída) e escolha a guia Debug (Depurar).
8. Execute uma das seguintes ações para iniciar uma sessão de depuração:
• No BlackBerry Java Plug-in para Eclipse, clique com o botão direito do mouse no projeto CustomComponentsDemo
no Project Explorer e, em seguida, clique no menu Debug As (Depurar como) e selecione BlackBerry Simulator
(Simulador do BlackBerry).
• No BlackBerry JDE, no menu Debug (Depurar), clique em Go (Ir).
9. Na janela BlackBerry Smartphone Simulator (Simulador de smartphone BlackBerry), teste seu aplicativo acessível.
A janela de console exibe a saída normal que vem do leitor de tela, o qual está ouvindo eventos nos componentes da interface
e processando os eventos.
---------------- SOUND: Media icon focused

Informações relacionadas
Aplicativo de amostra AccessibilityDemo, 9

22
Guia do desenvolvedor Recursos relacionados

Recursos relacionados 4
Para obter mais informações sobre desenvolvimento de aplicativos acessíveis, consulte os seguintes recursos:
• www.blackberry.com/accessibility
• Diretrizes de interface do usuário para smartphones BlackBerry
• Guias de desenvolvimento para o desenvolvimento de BlackBerry® Java® Applications
• Referência a APIs para desenvolvimento de BlackBerry® Java® Applications

23
Guia do desenvolvedor Fornecer comentários

Fornecer comentários 5
Para fornecer comentários sobre este material, visite www.blackberry.com/docsfeedback.

24
Guia do desenvolvedor Histórico da revisão de documentos

Histórico da revisão de documentos 6

Data Descrição
15 de dezembro de 2009 Atualizados os seguintes tópicos:
• Introdução à API Acessibilidade
• Aplicativo de amostra AccessibilityDemo
• Configurar o aplicativo de amostra AccessibilityDemo no BlackBerry Java Plug-in para
Eclipse
• Explorar o aplicativo de amostra AccessibilityDemo
• Testar um aplicativo acessível do dispositivo BlackBerry
6 de outubro de 2009 Acrescidos os seguintes tópicos:
• Configurar o aplicativo de amostra AccessibilityDemo no BlackBerry JDE Plug-in para
Eclipse
• Configurar o aplicativo de amostra AccessibilityDemo no BlackBerry Java Development
Environment
17 de agosto de 2009 Acrescidos os seguintes tópicos:
• Prática recomendada: Projetando aplicativos acessíveis
• Testar um aplicativo acessível do dispositivo BlackBerry
6 de julho de 2009 Versão inicial.

25
Guia do desenvolvedor Aviso legal

Aviso legal 7
©2010 Research In Motion Limited. Todos os direitos reservados. BlackBerry®, RIM®, Research In Motion®, SureType®,
SurePress™ e marcas comerciais, nomes e logotipos relacionados são propriedade da Research In Motion Limited e estão
registrados e/ou são usados nos EUA e em vários países.
Java é uma marca registrada da Sun Microsystems, Inc. Todas as outras marcas comerciais pertencem a seus respectivos
proprietários.

Esta documentação, incluindo toda a documentação incorporada por referência, como a documentação fornecida ou disponível
em www.blackberry.com/go/docs, é oferecida ou disponibilizada "NA FORMA EM QUE SE ENCONTRA" e "CONFORME A
DISPONIBILIDADE", sem condições, endossos, responsabilidades, declarações ou garantias de qualquer espécie pela Research
In Motion Limited e suas empresas afiliadas ("RIM"), e a RIM não assume nenhuma responsabilidade por erros tipográficos,
técnicos ou de outra natureza encontrados neste documento, nem por eventuais omissões. Esta documentação pode usar termos
genéricos ao descrever alguns aspectos de tecnologia da RIM com o objetivo de proteger informações confidenciais e de
propriedade da RIM e/ou segredos comerciais. A RIM reserva-se o direito de alterar periodicamente as informações contidas
nesta documentação e não se compromete a fornecer, seja regularmente ou de qualquer outra forma, tais alterações, atualizações,
aprimoramentos ou outras inclusões à mesma.
Esta documentação pode conter referências a fontes de informação, hardware ou software, produtos ou serviços de terceiros,
incluindo componentes e conteúdo protegidos por direitos autorais e/ou sites de terceiros (coletivamente chamados de “Produtos
e Serviços de Terceiros”). A RIM não controla nem se responsabiliza por quaisquer Produtos e Serviços de Terceiros, incluindo,
sem limitações, conteúdo, precisão, conformidade com leis de direitos autorais, desempenho, compatibilidade, confiabilidade,
legalidade, decoro, links ou qualquer outro aspecto a eles relacionado. A inclusão de uma referência a Produtos e Serviços de
Terceiros nesta documentação não implica no endosso da RIM quanto a esses produtos e serviços, nem aos terceiros que os
fornecem.
SALVO NA MEDIDA EM QUE FOR ESPECIFICAMENTE PROIBIDO PELA LEGISLAÇÃO APLICÁVEL NA SUA JURISDIÇÃO, TODAS
AS CONDIÇÕES, ENDOSSOS, RESPONSABILIDADES, REPRESENTAÇÕES OU GARANTIAS DE QUALQUER ESPÉCIE,
EXPRESSAS OU IMPLÍCITAS, INCLUINDO, SEM LIMITAÇÕES, QUAISQUER CONDIÇÕES, ENDOSSOS, RESPONSABILIDADES,
REPRESENTAÇÕES OU GARANTIAS DE DURABILIDADE, ADEQUAÇÃO A UMA FINALIDADE OU USO ESPECÍFICOS,
COMERCIALIZAÇÃO, QUALIDADE DE COMERCIALIZAÇÃO, NÃO-VIOLAÇÃO, QUALIDADE SATISFATÓRIA OU
PROPRIEDADE, OU QUE RESULTEM DE UM ESTATUTO OU COSTUME, OU DE NEGOCIAÇÃO OU USO COMERCIAL, OU
RELACIONADAS À DOCUMENTAÇÃO OU AO SEU USO, OU AO DESEMPENHO OU À FALTA DE DESEMPENHO DE
QUALQUER SOFTWARE, HARDWARE, SERVIÇO OU DE QUAISQUER PRODUTOS OU SERVIÇOS DE TERCEIROS CITADOS
NESTE DOCUMENTO, FICAM AQUI EXCLUÍDAS. VOCÊ TAMBÉM PODERÁ TER OUTROS DIREITOS DEPENDENDO DO SEU
ESTADO OU PROVÍNCIA. ALGUMAS JURISDIÇÕES NÃO PERMITEM LIMITAÇÕES OU EXCLUSÕES DE GARANTIAS E
CONDIÇÕES IMPLÍCITAS. NA EXTENSÃO PERMITIDA PELA LEI, QUAISQUER GARANTIAS OU CONDIÇÕES IMPLÍCITAS
RELACIONADAS À DOCUMENTAÇÃO NA MEDIDA EM QUE NÃO PUDEREM SER EXCLUÍDAS CONFORME ACIMA
ESTABELECIDO, MAS PUDEREM SER LIMITADAS, FICAM AQUI LIMITADAS A 90 (NOVENTA) DIAS A PARTIR DA DATA DA
AQUISIÇÃO DA DOCUMENTAÇÃO OU DO ITEM QUE SEJA OBJETO DA REIVINDICAÇÃO.

26
Guia do desenvolvedor Aviso legal

NA MÁXIMA EXTENSÃO PERMITIDA PELA LEGISLAÇÃO APLICÁVEL NA SUA JURISDIÇÃO, EM NENHUMA CIRCUNSTÂNCIA
A RIM SE RESPONSABILIZARÁ POR QUALQUER TIPO DE DANO RELACIONADO A ESTA DOCUMENTAÇÃO OU AO SEU USO,
OU AO DESEMPENHO OU FALTA DE DESEMPENHO DE QUALQUER SOFTWARE, HARDWARE, SERVIÇO OU QUAISQUER
PRODUTOS E SERVIÇOS DE TERCEIROS CITADOS NESTE DOCUMENTO, INCLUINDO, SEM LIMITAÇÕES, QUALQUER UM
DESTES DANOS: DANOS DIRETOS, RESULTANTES, EXEMPLARES, INCIDENTAIS, INDIRETOS, ESPECIAIS, PUNITIVOS OU
AGRAVADOS, DANOS POR LUCROS CESSANTES OU PERDA DE RECEITA, NÃO CUMPRIMENTO DE METAS COMERCIAIS,
INTERRUPÇÃO DOS NEGÓCIOS, PERDA DE INFORMAÇÕES COMERCIAIS, PERDA DE OPORTUNIDADES COMERCIAIS, OU
PERDA DE DADOS OU DADOS CORROMPIDOS, PROBLEMAS DE TRANSMISSÃO OU RECEBIMENTO DE DADOS, PROBLEMAS
ASSOCIADOS A APLICATIVOS USADOS JUNTO COM PRODUTOS OU SERVIÇOS DA RIM, CUSTOS DECORRENTES DE TEMPO
DE INATIVIDADE, PERDA DE USO DE PRODUTOS OU SERVIÇOS DA RIM OU DE QUALQUER PARTE DELES OU DE
QUAISQUER SERVIÇOS DE TRANSMISSÃO SEM FIO, CUSTO DE MERCADORIAS DE REPOSIÇÃO, CUSTOS DE SUPORTE,
EQUIPAMENTOS OU SERVIÇOS, CUSTO DO CAPITAL OU OUTRAS PERDAS FINANCEIRAS SEMELHANTES, SEJAM TAIS
DANOS PREVISÍVEIS OU IMPREVISÍVEIS, E MESMO QUE A RIM TENHA SIDO ALERTADA SOBRE A POSSIBILIDADE DE TAIS
DANOS.
NA MÁXIMA EXTENSÃO PERMITIDA PELA LEGISLAÇÃO APLICÁVEL NA SUA JURISDIÇÃO, A RIM NÃO TERÁ QUALQUER
OUTRO TIPO DE OBRIGAÇÃO, DEVER OU RESPONSABILIDADE, SEJA CONTRATUAL, EXTRACONTRATUAL OU DE OUTRA
FORMA RELACIONADA A VOCÊ, INCLUINDO QUALQUER RESPONSABILIDADE POR NEGLIGÊNCIA OU RESPONSABILIDADE
OBJETIVA.
AS LIMITAÇÕES, EXCLUSÕES E ISENÇÕES DE RESPONSABILIDADE AQUI ESTABELECIDAS SERÃO APLICADAS: (A)
INDEPENDENTEMENTE DA NATUREZA DA FORMA DE AÇÃO, DEMANDA OU AÇÃO REALIZADA POR VOCÊ INCLUINDO,
SEM LIMITAÇÕES, VIOLAÇÃO DE CONTRATO, NEGLIGÊNCIA, RESPONSABILIDADE EXTRACONTRATUAL OU OBJETIVA OU
QUALQUER OUTRA TEORIA LEGAL E PERMANECERÃO EM VIGOR MESMO NO CASO DE VIOLAÇÕES FUNDAMENTAIS OU
DO NÃO CUMPRIMENTO DO PRINCIPAL OBJETIVO DESTE CONTRATO OU DE QUAISQUER RECURSOS CONTIDOS NESTE
DOCUMENTO; E (B) À RIM E SUAS AFILIADAS, SEUS SUCESSORES, PROCURADORES, AGENTES, FORNECEDORES
(INCLUINDO PROVEDORES DE SERVIÇOS DE TRANSMISSÃO SEM FIO), DISTRIBUIDORES AUTORIZADOS DA RIM
(INCLUINDO TAMBÉM PROVEDORES DE SERVIÇOS DE TRANSMISSÃO SEM FIO) E SEUS RESPECTIVOS DIRETORES,
FUNCIONÁRIOS E PRESTADORES DE SERVIÇO INDEPENDENTES.
ALÉM DAS LIMITAÇÕES E EXCLUSÕES ACIMA ESTABELECIDAS, EM NENHUMA CIRCUNSTÂNCIA OS DIRETORES,
FUNCIONÁRIOS, AGENTES, DISTRIBUIDORES, FORNECEDORES, PRESTADORES DE SERVIÇO INDEPENDENTES DA RIM OU
DE QUALQUER UMA DE SUAS AFILIADAS TERÃO QUALQUER TIPO DE RESPONSABILIDADE RESULTANTE DA
DOCUMENTAÇÃO OU A ELA RELACIONADA.
Antes de assinar, instalar ou usar quaisquer Produtos e Serviços de Terceiros, é sua responsabilidade garantir que o provedor de
serviços de transmissão sem fio concorde em oferecer suporte a todos os recursos. Alguns provedores de serviços de transmissão
sem fio talvez não ofereçam funcionalidade de navegação na Internet com uma assinatura ao BlackBerry® Internet Service.
Consulte sua operadora para obter informações sobre disponibilidade, recursos, e planos de roaming e de serviço. A instalação
ou uso de Produtos e Serviços de Terceiros com os produtos e serviços da RIM podem exigir uma ou mais licenças de patente,
marca comercial ou direitos autorais ou outras licenças a fim de evitar a infração ou violação dos direitos de terceiros. É sua total
responsabilidade determinar se Produtos e Serviços de Terceiros devem ser utilizados e se é necessário obter licenças de terceiros
para tanto. Em caso afirmativo, você será o responsável pela aquisição das mesmas. Você não deverá instalar ou usar Produtos
e Serviços de Terceiros até que todas as licenças necessárias tenham sido obtidas. Quaisquer Produtos e Serviços de Terceiros
fornecidos com produtos e serviços da RIM são fornecidos como uma conveniência para você e "NA FORMA EM QUE SE
ENCONTRAM", sem condições, endossos, responsabilidades, declarações ou garantias de qualquer espécie, explícitas ou

27
Guia do desenvolvedor Aviso legal

implícitas, por parte da RIM, e a RIM não assume qualquer tipo de responsabilidade em relação a eles. O uso que você faz dos
Produtos e Serviços de Terceiros será regido e estará sujeito à sua aceitação dos termos das licenças individuais e de outros
contratos aplicáveis com terceiros, a menos que sejam expressamente incluídos em uma licença ou outro contrato com a RIM.
Certos recursos descritos nesta documentação requerem uma versão mínima do BlackBerry® Enterprise Server, BlackBerry®
Desktop Software e/ou BlackBerry® Device Software.
Os termos de uso de qualquer produto ou serviço da RIM são estipulados em uma licença individual ou em outro contrato com
a RIM aplicável a eles. NENHUM TERMO DESTA DOCUMENTAÇÃO DESTINA-SE A SUBSTITUIR CONTRATOS OU GARANTIAS
EXPRESSAS POR ESCRITO FORNECIDAS PELA RIM PARA PARTES DE QUALQUER PRODUTO OU SERVIÇO DA RIM QUE NÃO
SEJA ESTA DOCUMENTAÇÃO.

Research In Motion Limited


295 Phillip Street
Waterloo, ON N2L 3W8
Canadá

Research In Motion UK Limited


Centrum House
36 Station Road
Egham, Surrey TW20 9LF
Reino Unido

Publicado no Canadá

28

Вам также может понравиться