| Item of Collection | Row of Table in Database | Manipulation | Description |
|---|---|---|---|
| Y | Y | UPDATE | |
| Y | N | (re)INSERT | |
| N | Y | DELETE | |
| With ConcurrencyCheck | |||
| Y | Y | UPDATE | ConcurrencyCheck failure: throw exception |
| Y | N | Throw Exception or INSERT | Has ConcurrencyCheck value(s) |
| N | Y | Throw Exception |
| Item of Collection | Item of Original | Row of Table in Database | Manipulation | Description |
|---|---|---|---|---|
| Y | Y | Y | UPDATE | |
| Y | Y | Y | UPDATE(ConcurrencyCheck) | ConcurrencyCheck failure: throw exception |
| Y | Y | N | Throw Exception | |
| Y | N | / | INSERT | |
| N | Y | Y | DELETE | |
| N | Y | Y | DELETE(ConcurrencyCheck) | 0 rows affected(ConcurrencyCheck failure): throw exception |
| N | Y | N | DELETE | 0 rows affected |
| N | N | Y | Throw Exception | InsertedByAnotherUser |


Yu-Shi Tian, Ph.D.@ Osaka University. His reseach is on computitational chemistry and cheminformatics. More Details.
Stastatics, chemistry, and cheminformatics
Research paper pubulished can be found here
Our originally designed software packages
Prof. T. TAKAGIAssist. Prof. ICHIJO & TIAN


As mentioned in the painter overview, most of the Substance painting logic is abstracted into a set of painters. This not only allows preventing duplicate painting sequence in the Substance UI delegates. This also provides a painting layer for the applications that wish to paint custom components in a way that is consistent with other Substance visuals.
This applies in two major cases:
Instead of trying to match the colors, gradients and animation sequences from the current Substance skin (which might change between various releases), applications can use the Substance painting APIs. This will result in code which is shorter, more maintainable and also produces consistent results.
The following Substance APIs are most suited for painting custom components:
Most of the Substance UI delegates use a combination of the above APIs. While the exact combination in the existing UI delegates is subject to change in between releases, you can study the core Substance code to see the main combination patterns.
The first pattern is watermark overlaying. The
watermarks are painted on most Swing containers,
and on some components as well. In simpler cases (such as
JPanel
), the watermark is painted
on top of the gradient fill. In more complex scenarios, after the watermark
has been painted, the fill sequence is repeated with lower alpha
value. Here is an example of such a scenario:
In this scenario, while the regular controls and containers on the content pane are painted with the regular watermark, the frame header (title pane and tool bar) has less "intrusive" watermark painting. This is achieved by the following sequence:
AlphaComposite.SRC_OVER
with alpha value of 0.5.The second pattern is decorating. The decoration painters
can be used to provide distinct painting to some containers, this setting them "apart" from
the rest of the application. As the pattern name implies, this works best on specialized
containers and visual areas that are situated along the window edges. Here is an example
of SwingX JXLoginDialog
component painted by the
Substance SwingX plugin:
In this scenario, the JXLoginDialog
has a
"decoration" strip located along the top side of the window. To paint the background of this
component, the custom UI delegate is using the current
decoration painter, which results in a consistent appearance of
the top portion of this dialog.
Here is another example of this pattern, this time on the
JXStatusBar
component from
SwingX component suite. Assuming that this
component will be placed along the bottom side of the frame, the
matching UI delegate in the
Substance SwingX plugin uses the
current decoration painter to provide a
distinct appearance of status bar which is consistent with the title pane
and menu bar:
The third pattern is border tracing. Those components that require consistent
painting of borders or contours can use the
border painter with the matching contour. Here is an example
of border tracing in the JRibbon
component from Flamingo
component suite under the
Substance Flamingo plugin:
This UI delegate uses the border painter extensively to create the required visuals. Note the outer contour of the ribbon that also includes the selected tab button, and the inner contours of the ribbon tasks.
Here is another example of this pattern, this time on the
JCommandButton
component from Flamingo
component suite. The custom UI delegate uses the border painter to
paint the button border (a simpler contour in this case):
The last pattern is gradient filling. It is used to paint the
inner fill of custom components (along with the border tracing pattern to
paint the component contour). This pattern uses the
fill painter with the matching contour. Here is
an example of the JRibbon
component from Flamingo
component suite:
In this example, the first toggle tab button (Write) is painted by the
current fill painter, providing a consistent
appearance with the rest of the application controls. Another example is the previous
screenshot (of the JCommandButton
),
where the button fill is painted by the current fill painter as well.


?n.v.:
None
reported.
USE:
None
reported
NCI
Sample
codes:
20a
SK0CUN-0028);
20b
RT(0CUN-0029);
20c
LF+ST(0
CUN-0031);
20d
BKC0CUN-0030)
Kendall
Lee
20
July
26,
1992
Fieldwork
supported
by
the
National
Cancer
Institute.
Voucher
for
pharmaceutical
screening.
00041860
The
New
York
Botanical
Garden
INSTITUTE
OF
ECONOMIC
BOTANY
Plants
of
Dominica
POACEAE
‘jambusa
vulgaris
Schrader
ex
Wendl.
-
ņNtt-
H•
WEST
INDIES.
Dominica.
St.
George
Parish.
2.25km
from
Loubere,
on
road
to
Grand
Bay.
61°22'W.
OO372m
Growing
along
roadside,
in
large
stands.
Plant
to
15m.
00041860
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


In Pictures: Maori welcome for Charles and Camilla in New Zealand
The Duke and Duchess of Cornwall are on the second day of their visit.
Charles and Camilla spent the second day of their tour to New Zealand visiting a vineyard and paying tribute to the fallen at a war memorial in Auckland.
The Prince of Wales was given a full Maori welcome as he attended the Queen’s Colour Ceremony at the Royal New Zealand Air Force Whenuapai base.
Meanwhile, the Duchess of Cornwall was given a garland made of chocolate bars during her visit to the Wesley Community Centre in Auckland.


Our designs focus on a simple principle; great design comes with simplicity. This means that our designers do our best to mate simple design with purposeful layouts. Speaking of layouts, ours are intuitive and easy to use. Customers will have the ability to navigate your website with prescision and stamina; something not all web designers can promise.
No more waiting around for your designer to communicate back to you about your porject. We take pride in our fast communication and turn-over times regarding modifications and questions. If there is a problem, we will fix it. This philosophy also carries over to your customers. Faster load times due to more intuitive code structures indicate quality for your brand and company as a whole.
desktop_windows
Our process allows a nailed-down design to be created faster. We stick to a strict schedule to get your prject completed on time. Check in on us every step of the way with our intuitive client portal.
We woork with you to decide what your needs and wants are, and how we can meet them. Taking notes and sketches allows us to save every intricut detail for planning.
A skeletal structure of your site is built during the planning phase.
 Based on the plans, a rough draft of a design is put together. This includes colors, layouts, and later the bulk of the content.
Taking it back to the drawing board, we refine your design to your exact specifications. Content, images, and colors can be changed to achieve the final desired effect.
We designed Mainstreet Goods as an entire brand. We started from the ground up, working an overall aesthetic that matches the intentions of this company. The clients decided that they wanted to use Shopify to manage their store's content. We added custom elements to allow the site to run more smoothly and suit our clients needs. We also configured the account from the ground up to be ready to open upon request.
BACK
OPEN
We designed Cascade Design many years ago as our sister company. We had many successful clients before we decided to pack up and rebrand ourselves to Devza Professional Services. As Cascade, we focused mainly on web and logo design. As design changes, so do we; but at the heart we are still the same.
BACK
OPEN
Your logo has the ability to set you apart from the others. It has the ability to create a sense of trustworthiness for your company. A simple, modern logo combined with a nailed-down brand design shows who you are as a business.
Have you ever visited a website and thought to yourself "Wow, this looks really bad." You don't want your customers to have this same feel when visiting your page. Custom web design gives a level of connection between you and your brand that no website builder tool on the web could give. Every element of your site can be modified to suit your needs.
Price will be determined based on needs and complexity. Contact us for a quote
A company-s brand is everything. Your customer affiliates your brand with your company when they see it, so you want to make the best impression possible. Logos, colors, statements, and other graphics make up your brand.
Price will vary per project. Contact us for a quote
Banners, posters, flyers, cards. Anything you need for your business starts here. Simplicity is key. Design consultations are also availible.
Price will vary per project. Contact us for a quote
Fill out the form below to obtain a quote or just ask a question.


Finished 10th standard high school education
Finished 7th and 8th standard education
Finished LKG, UKG, 1st to 6th standard education


@ManagedProperty
annotation can be used as a dependency injection (DI).ManagedTestService
is managed by JSF @ManagedBean
.ManagedTestService
is injected into ManagedView
backing bean using @ManagedProperty
.@ManagedProperty
is a setter injection and required setter accessor on a calling bean.#{managedView.message}
WARNING!
Calling this will throw java.lang.NullPointerException
. Because this ManagedView
backing bean is not in CDI context.


Changjian Xie
PhD Candidate.
School of Mathematical sciences
,
Soochow University
.
Home
Research
Publications
Teaching
Notes
Reference book
Biography
Contents
Spring, 2018
Applied Mathematics Topics
Numerical PDEs
Fall, 2018
Analytic Geometry
Summer, 2019
Advanced Mathematics
Teaching
Teaching Assistant
Spring, 2018
Applied Mathematics Topics: Using Mathematical Languages to Study Practical Problems
Numerical PDEs:
Exam
,
Fall, 2018
Analytic Geometry,
Instructor
Summer, 2019
Advanced Mathematics


Portable 3.5-inch Hard Drives
L&A MyDesktop
Where to Buy |
Feature
More Room for Your Whole Life
MyDesktop Portable/ Desktop Drive from L&A is the simple, one-click
way to protect and share your entire digital life - without
getting in the way of the rest of your life.
- Includes easy-to-use backup software
- Features mobile backup using the L&A Mobile Backup App
- Save photos from your social networks automatically
- Easy to share files between PCs and Mac computers
- Massive capacity for a lifetime of memories
Easy Backup Options
L&A MyDesktop lets you back up your content using two easy,
automatic backup options - scheduled or continuous backups.
Do More with Social Networks
Don't risk losing those great pics you've posted online.  You can even share new videos to your YouTube
account.
Massive capacity
With up to 5 TB capacity, there's plenty of room for all your
important files and precious memories.
Improve PC performance
When your internal hard drive is almost full, your PC slows down.
Don't delete files. Free up space on your internal hard drive
by transferring files to your L&A MyDesktop storage and get your
computer moving again.
Universal connectivity
With this single drive you can connect to the latest USB 3.0 devices
or to your USB 2.0 devices as well.
Transfer files faster than ever
When connected to a SuperSpeed USB 3.0 port, L&A Backup lets
you access and save files faster than ever. Transfer a 2-hour
HD movie in just 3 minutes instead of 13 minutes.


TorchDiffEqPack.odesolver package¶
TorchDiffEqPack.odesolver.ode_solver module¶
-
TorchDiffEqPack.odesolver.ode_solver.
odesolve
(func, y0, options, return_solver=False, **kwargs)¶ Implementation of ICML 2020 paper “Adaptive checkpoint adjoint method for accurate gradient esitmation in Neural ODEs”
How to use:
from TorchDiffEqPack import odesolve
options = {}
options.update({‘method’:method}) : string, ‘method’ must be in [‘euler’,’rk2’,’rk12’,’rk23’,’dopri5’, ‘ode23s’], ‘ode23s’ for stiff ODEs
options.update({‘h’: h}) : float, initial stepsize for integration. Must be specified for fixed stepsize solvers; for adaptive solvers, can be set as None, then the solver witll automatically determine the initial stepsize
options.update({‘t0’: t0}) : float, initial time for integration
options.update({‘t1’: t1}) : float, end time for integration
options.update({‘rtol’: rtol}) : float or list of floats (must be same length as y0), relative tolerance for integration, typically set as 1e-5 or 1e-6 for dopri5
options.update({‘atol’: atol}) : float or list of floats (must be same length as y0), absolute tolerance for integration, typically set as 1e-6 or 1e-7 for dopri5
options.update({‘print_neval’: print_neval}) : bool, when print number of function evaluations, recommended to set as False
options.update({‘neval_max’: neval_max}) : int, maximum number of evaluations when encountering stiff problems, typically set as 5e5
options.update({‘t_eval’: [t0, t0 + (t1-t0)/10, … ,t1]}) : Evaluation time points, a list of float; if is None, only output the value at time t1
out = odesolve(func, y0, options = options) : func is the ODE; y0 is the initial condition, could be either a tensor or a tuple of tensors


Main include start
Main include end
Include template value: Test
Sub include template value: Test
Back


Candidate Profile
| Name | William Devine |
| Party | Labour |
|<EMAIL_ADDRESS>| |
| mobile | 07939 515863 |
Background
Tell us about your education?
Born and educated in Glasgow. Joined the Metropolitan Police in London from 1981 to 1988 and left at the rank of Sergeant to study for the Catholic Priesthood.
Went to London university and graduated in Theology.
What are three jobs you have held?
- Psychodynamic Counsellor and Organisaional Trauma Practitioner (present).
- Worked as a counselor in the NHS in the field of HIV & Sexual Health.
- Trainee for the Priesthood and Metropolotan Police Sergeant.
That’s 4 jobs.
What are you links to the North Twickenham/St Margarets community?
I live in Saint Margarets and have lived in the area for the last couple of years, East Twickenham just over a year ago.
Why did/do you want to be a councilor?
I’d like to build on and develop community relations, I’d like to develop understanding across sections of the community, to help appreciate diversity and assist North Twickenham being a safer, happier and more community based place to live and grow.
Issues
What do you think are the top three issues for North Twickenham/St Margarets and what do you should be done about them?
- Good value public services e.g. in education, welfare, facilities, amenities, safe streets and pavements, cleaner areas.
- Fostering a culture of entrepreneurialism and collaboration across local businesses and the community.
- Developing community links, bonds, understanding and appreciation across sections of the community: a sense of safety and enjoyment in living in the community.
What areas are you passionate about and what committees would you like to sit on?
- Entrepreneurialism and therefore community based commerce.
- Developing deeply understood community relations and celebrating diversity.
Are there any big things you are looking to achieve or change?
Working on the above areas would be big achievements.
If elected, how will you keep in-touch with your constituents?
Meet them via various media, be accessible, listen and respond. I’d develop a collaborative team: I can’t do all of this alone. Draw on the resources of my colleagues in the local Labour Party.
Fun
What is your favorite musical group/band/cd?
Have a broad taste, like bands like The Streets, Oasis, U2, but have a particular admiration for Freddie Mercury, the world’s a duller place without him.
What is your favorite book?
The Chosen by Chaim Potok, an inspiring story about the struggle for individuation. And The Life of Pi especially because the young boy considered himself Christian, Muslin, Hindu and I think one other religion; he had a marvelous openness. The problem was the closed minded adult (clerics) who said it wasn’t allowed.
What is the last book you read?
Equals by Adam Philips, a therapist’s read. Fiction Bonjour Tristesse by Francoise Sagan, currently reading We Need to Talk About Kevin by Lionel Shriver.
What are three places you have lived?
- London North, South, South West
- Canterbury & Plymouth
- Glasgow
What is your favorite meal?
Universal appreciation of food: especially like Chinese, Indian and love Mediterranean fresh food and salads, love seafoods.
Enjoy basic British fare too especially ham, chips and beans as long as the beans don’t touch the chips!
What is your favorite place to take a holiday?
Love traveling. Any of the Scottish Islands especially Skye, Arran and Mull. Travelled extensively in Greece been to over 20 islands, I love the sun, the clear sea and the simplicity of the place. India awesome and want to travel in Spanish speaking countries: I’m slowly learning Spanish at the moment.


ABAdata
Controls
Frequency
Start
Stop
Reset
Save
Timer
00:00:00
Frequency:
0
History
Behavior
Date
Time
Frequency
Clear History
Export History


Enhancements
Bug Fixes
-
in addition to #
in Unquoted
MacroNameArity
decompiler.
-
in decompiled module names.nil
as unquote(:nil)
in the decompiler.Enhancements
credo
external annotator
mix credo
will
be run on any modified file.
mix credo
will be turned into a warning annotation (yellow
highlight) of the line or line and column credo identified.
mix credo PATH:LINE(:COLUMN)
explanation will be shown. Links in the tooltip are clickable
and allow you to jump to the specific line or line and column of the failure.
Bug Fixes
org.elixir_lang.annonator
-> org.elixir_lang.annotator
.
MixRunningStateUtil#setElixir
to support calling erl
directly in IntelliJ
IDEA added a check that sdk type was the Elixir SDK Type, but there was no else
clauses to handle
that there IS an SDK, but its NOT Elixir, which is the common case on all Small IDEs (like Rubymine). To fill
this gap, if the SDK is not Elixir and a Small IDE is detected, then the SDK Home from Preferences > Other
Settings > Elixir External Tools > Elixir SDK > Path will be used to get the absolute path to the
elixir
(or elixir.bat
executable and set it in the GeneralCommandLine
.
**
for bold.Enhancements
:
Elixir SDK will now have an Internal Erlang SDK, which can be supplied one of two ways:
intellij-erlang
is installed: its Erlang SDK can be usedEither Internal Erlang SDK's home path is used to locate the erl
(or erl.exe
on Windows) executable and it is used to run Elixir; bypassing the elixir
(or elixir.bat
on Windows) script. Instead, as was done in #789, the ebin directories for the Elixir SDK are passed as -pa
options to erl
.
The Elixir SDK's configuration becomes more important: the classpath entries are now the list of ebin
directories to pass to erl
using -pa
instead of scanning for ebins in the homepath, so additional code paths can be added to the Classpaths configuration and they will be used when running mix
and mix test
. The classpaths will be initialized to the ebin directories under the home path.
intellij-erlang
is installed, intellij-elixir
's Erlang version suggestion is still used because intellij-elixir
favors the latest version while intellij-erlang
favors the first found, which is usually the oldest version.HOMEPATH/lib
is replaced with HOMEPATH/lib/APP/ebin
.HOMEPATH/lib
is replaced with HOMEPATH/lib/APP/lib
IF it exists (so only for source SDKs)http://elixir-lang.org/docs/stable/elixir/
will be replaced with https://hexdoc.pm/APP/VERSION
for every APP
in HOMEPATH/lib
.ebin
paths in the Internal Erlang SDK will be copied to the Elixir SDK, so that they are
indexed, which makes the Internal Erlang SDK modules show up in Symbol search.
.
.
.beams
from the Internal Erlang SDK) will be used for
completing atoms as soon the atom is parseable: either after the first letter :
or inside
the quotes when making a quoted atom.
.*
and look for regex matches to this
derived potential atom name.
.
will now work at the end of file. Previously, completions only
worked in the middle of a file, where the .
could parse the next work an existing call, now if that
parse doesn't work and the only thing after is a new line, it will still complete.
A-Z
as sigil modifiers in addition to a-z
to support U
ungreedy modifier
that replaced r
ungreedy modifier for regexes.
Bug Fixes
Elixir.
.
:
) andElixir.
and plain Aliases for debugger blacklist.END
to allowed keywordKey
tokens.beam
files if macro
is
defmacro
. "Macros" header was being printed when there was only functions because the check when
there was no lastMacroNameArity
didn't care what the current macroNameArity.macro
was.
.erl
file has -compile([compressed])
, it will be compiled normally, and then
gzipped, so that the .beam
will not contain the BEAM magic number FOR1
, but instead
the gzip magic number 0x1f
0x8b
. So, to properly handle normal and compressed, the
decompiler needs to look-ahead 2-bytes and check the gzip magic number. If the gzip magic number is detected,
the InputStream will be passed through GZIPInputStream
before the the normal decoding process.
#
and they would be interpreted as comments. Accepting those names in Unquoted
wouldn't escape the #
from being treated as a comment, so in addition to unquote
ing
the name, surround it in double quotes.
AdditionalDataConfigurable
only copied the the Internal Erlang SDK Code Paths when the selection in
the ComboBox
was changed, which meant if the there was only one Erlang SDK or the user never
changed the selection, the Code Paths were never copied. To get the Code Paths copied when the Elixir SDK is
first created and setupSdkPaths
interface method is called
SdkAdditionalaData
ebin
directories for its
Class Paths, then the Class Paths is expanded to Code Paths.
Bug Fixes
intellij-erlang
a soft-dependency, it broke the debugger's icons that referenced
ErlangIcons
, but it turns out all the icon constants were aliases to
AllIcons.Debugger
constants, so by using the AllIcons.Debugger
icons directly,
the dependency on ErlangIcons
can be removed without the need to copy the image files into
intellij-elixir
.
do ... end
template is inserted, it did not have a previous child whose attributes to
use, so it used the default, which left the cursor unindented. To get the cursor indented by default,
when the ElementType
is DO
, apply the stabChildrenIndent
rules:
indent normal and determine whether to indent relative to direct parent using code style setting.
VirtualFile
path in Beam read errorsEnhancements
org.elixir_lang.ElixirModules
has
static methods for copying resources out to a temporary directory and adding the
-r <temporary_path>
for one or more resource files to a new or existing ParametersList.
These are now shared for the Mix ExUnit and Debugger code paths.
ElixirXDebugProcess
MixExUnitRunningState
MIxRunningState
Bug Fixes
.beam
files were removed in
58e7d4a
, which was before v5.1.0, but not all users had problems with using the debugger.
#739
persisted
(as reported by @erikreedstrom) when
6.0.0 was released; I retried reproducing on a clean VM and I got it. I'm not sure why it worked for some
people in prior releases since the .beam
don't exist that were being copied, but now the
debugger uses the same system of copying .ex
files and requiring them with -r
instead of copying .beam
and using -pa
to add the ebin
directory.
Fix was verified local under macOS and in Windows VM that reproduced
#739.
Enhancements
do
block lines are indenteddo
blocks end
as the last argument of a no parentheses call unindents to the
start of the call
else
.
and
in
or
when
=
<-
and \\
!=
, ==
, =~
, !==
, and ===
<
, <=
, >=
, and >
+
and -
*
and /
+
, -
, !
, ^
, and ~~~
->
::
|
||
and |||
&&
and &&&
<~
, |>
, ~>
, <<<
,
<<~
, <|>
, <~>
, >>>
, and
~>>
..
^^^
++
, --
, ..
, <>
=>
,
@
not
fn
after
catch
rescue
key:
&
,
{ }
<< >>
[ ]
( )
/
in &NAME/ARITY
and &QUALIFIER.NAME/ARITY
when
wraps when its right operand wraps, so that guards start with when
on a
newline when they are too long.
|>
at start of indented line for pipelinesend
with start of call instead of start of line for do
blocks in pipelines
::
when
when guards span multiple lines++
, --
, ..
, <>
) operands, so
that <>
binaries are multiple lines align their starts instead of using continuation
indent and being indented relative to first operand.
|
operands, so that alternates in types and specs are aligned instead of
continuation indented relative to the first operand.
spec
(that is above operands to |
align with the operands|>
is the start of a successive line.
<< >>
) elements when wrapped2017.1.1
-> 2017.1.5
2016.3.5
-> 2016.3.7
1.4.2
-> 1.4.5
TeamCityExUnitFormatting.put_event
%__MODULE__{}
for state in clauses to prevent state update errors:suite_finished
and :suite_started
events, so that only events added to the
interface will be unknown and IO.warn
can be used tell anyone spotting the new event to file an
issue.
1
for lines or 3
for heredocs), pin
*_PROMOTER
token, so it's more obvious the pattern is that the promoter is pinned.
/nix/store
on Mac if homebrew path does not existDecompilerTest
lengthorg.jetbrains.intellij
0.2.15
Elixir.LDAPEx.ELDAPv3.beam
as regression test for #703.
THashSet
instead of the more specific SmartHashSet
because THashSet
allows null
keys, which are expected for the canonicalNameSet
.
quote
s in list in macros in Structure ViewCallable#multiResolve
, CallDefinitionClause#multiResolve
,
Module#multiResolve
, and ModuleAttribute#multiResolve
, which are all the extant
references, can be cached and invalidated correctly.
ParameterLists
to support Path Variables in program parameters.bin
, lib,
or src
to parent directory.ElixirSdkType
.AtU8
UTF8 atoms chunk decompilation to support OTP 20 compiled .beam
files.AtU8
chunk can be read
from beam file produced by following Elixir code:
defmodule AtU8Test do
def こんにちは世界 do
:こんにちは世界
saudação = "Bom dia!"
saudação
end
end
IdeaVIM
in the gradle sandbox because it got annoying having to reinstall it
when the sandbox reset.
MixRunningStateUtil
and fix warnings.Bug Fixes
::
the same as :
in key:
after when
in type
specifications as it's a realistic error.
.
to #
when referring to constants in javadocs@param
without descriptionsatNonNumericOperation
reference is non-null
before resolvingelse
.Type
leftOperand
is null
before using it.highlightTypesAndTypeParameterUsages(When...)
highlightTypesAndSpecificationTypeParameterDeclarations
equals
to eliminate need for null
check<...>
)Collections.EMPTY_SET
to Collections.emptySet()
to prevent uncheck cast
warnings.
when
rightOperand
is non-null
before scanning it for parameter
names.
mix test
, it will be turned into a test failure.
stderr
that end in (elixir)
lib/kernel/parallel_require.ex:
.
mix test
or the inferred
module name of test file.
test/.*_test.exs:\d+: \(module\)
test/
and .exs
will be stripped from the file and it will be
camelized to produce the derived test module name of the failure
mix test
is used"test doc at MODULE.FUNCTION/ARITY
(COUNT)"
becomes "MODULE.FUNCTION/ARITY doc (COUNT)"
MODULE
is the same as the test case without the Test
suffix, then MODULE.
is stripped too and the test name becomes only FUNCTION/ARITY doc (COUNT)
##teamCity
testSuiteStarted
messages automatically nest, so switched to using nodeId
and parentNodeId
system, so that nesting is explicit. This will allow multiple parallel tests to show up in GUI too.
Elixir.
prefix is stripped from test case names.Callable
and Kernel
annotatorsPsiElementVisitor
instead of PsiRecursiveElementVisitor
, so that macros in
defmodule
block don't get double annotated.
TextAttributeKey
, erase as before, but then merge
the TextAttributeKey
's TextAttributes
and apply as single setEnforcedTextAttributes
.
For some reason, this fixes the inconsistency of whether PREDEFINED_CALL
or MACRO_CALL
is applied first.
resolved
s, make those that need PREDEFINED_CALL
to win.TeamCityExUnitFormatting.new
should return struct only because none of the formatters
expects an :ok
tuple.
TeamCityExUnitFormatting.put_Event
catchall parameters.FileReferenceFilter
.exs
to pattern for stacktrace linking.stringLine
and
charListLine
.
unquote
, include argument in name of call definition clausequote
for enclosingMacroCall
, which allows going to Phoenix.Template.compile's
quote's defpModule.create
as `ModularOr
interface to unify Matched
and Unmatched
Or
s.Or
operation for nested child calls for Structure view.unquote(ARG1)
name for getName
and indexingElementDescription
for ElixirVariable
UnqualifiedParenthesesCall
s as call
instead of variable
.mix local.hex --force
before mix deps.get
during project import to prevent prompt
for hex update when local hex is earlier than that required by mix
.
MixProjectRootStep
ElixirDecimalFloat
as error in types.
jps-*/out
directories.isParameter
for AtUnqualifiedBracketOperation
.AtUnqualifiedBracketOperation
the same as UnqualifiedBracketOperation
for
isVariable
.
buildFileStub
do
as a function name, but it's a keyword in Elixir, so wrap it as unquote(:do)
.
The SpecialForm
decompiler already did this unquote(...)
wrapping, but do
is a keyword and not a special form, so rename the decompiler to Unquoted
.
Move {3} inside |
for SIGIL
PROMOTER
and TERMINATOR
:
SIGIL_HEREDOC_PROMOTER = ({SIGIL_DOUBLE_QUOTES_PROMOTER}|> {SIGIL_SINGLE_QUOTES_PROMOTER}){3} SIGIL_HEREDOC_TERMINATOR = ({SIGIL_DOUBLE_QUOTES_TERMINATOR}|> {SIGIL_SINGLE_QUOTES_TERMINATOR}){3}
The |
is inside group that is then {3}
'd, so it allows either '
or
"
in groups of three. This is only applies to the sigils. It's correct for normal string and
charlist heredocs:
CHAR_LIST_HEREDOC_PROMOTER = {CHAR_LIST_PROMOTER}{3} CHAR_LIST_HEREDOC_TERMINATOR = {CHAR_LIST_TERMINATOR}{3} STRING_HEREDOC_PROMOTER = {STRING_PROMOTER}{3} STRING_HEREDOC_TERMINATOR = {STRING_TERMINATOR}{3} QUOTE_HEREDOC_PROMOTER = {CHAR_LIST_HEREDOC_PROMOTER} | {STRING_HEREDOC_PROMOTER} QUOTE_HEREDOC_TERMINATOR = {CHAR_LIST_HEREDOC_TERMINATOR} | {STRING_HEREDOC_TERMINATOR}
JPS
type
for jps-*
projects because their deps become
incompatible with other projects.
break
s to case
statement in processDeclarations(Match, ...)
that caused the logic of whether to check left, right, or both operand based on the whether the treeWalkUp came
from always fell through to the RIGHT
case, so it was only, always checking the right operand of
the match and never the left operand.
processDeclarationsInPreviousSibling
when lastParent
is ElixirFile
Alias
as miscapitalized type parameter.when
in type specifications as it is a common occurrence
when typing a specification above a pre-existing call definition clause.
List
for enclosing modular macro.ElixirNoParenthesesManyStrictNoParenthesesExpression
for enclosing modular macro.ParametersList
to properly parse quote program parameters.Quoter
into test
directory, so it and its dependency on JUnit
is
only used for test compilation and runtime and not the shipped runtime.
Quoter
warnings and format.ElixirSdkType
.CallDefinitionClause
InsertHandler
always assumed there was a character after
the insert location, but when inserting at the very end of the file, there isn't, which caused an
IndexOutOfBoundsException
. Only check if the following character is not a space,
(
, or [
when the document is longer than the tail offset to prevent the
IndexOutOfBoundsException
. If the insertion is at the end of the file, then the
()
will always be inserted.
Decompilated
-> Decompilation
Data(Output|IntputStream
(write|read)Int
don't work correctly
with sizes, so use the JetBrains (write|read)VarInt
ones instead.
ChildAttributes
to previous child when available:
Block.getChildAttributes
is used when Enter is pressed to determine the indentation and
alignment. Using the default implementation, newlines in stabs look overly indented, but there is a
constant, DELEGATE_TO_PREV_CHILD
that can be used to just use the last child's indent as long
as there is one, which appears to work well for stabs (do block bodies, etc).
nameSetSize
from 4
to 10
because a
Poison.Encoder
has an impl
module for 4 types, and so has 4 canonical names.
Kernel.SpecialFroms
arity intervals
alias
overridden from 2
to 1-2
to support without :as
option.
import
overridden from 2
to 1-2
to support without
:except
or :only
options.
quote
overridden from 2
to 1-2
to support block without options.
require
overridden from 2
to 1-2
to support without
:as
option.
super
overridden from 1
to 0-
to support calling any super method.
elixir.bat
in at least Elixir 1.5.1, will not properly parse a mix path with spaces in it on
Windows even when the path has outer quotes (see
elixir-lang/elixir#6455). It is not
possible to use inner quotes, as you can do in cmd.exe, using the JetBrains and Java libraries that
auto-matically quote, so instead bypass the bad quoting in elixir.bat
by doing what
elixir.bat
does: call erl.exe
with all the SDK ebin paths added with
-pa
, then -noshell -s elixir start_cli
to run Elixir and-extra
to
run requires (-r
), mix and its tasks.
Incompatible Changes
14.1.X
support because it does not have support for nodeId test output, so it's not possible
to handle the ExUnit test output in a safe manner while still allowing concurrent output for asynchronous tests.
Enhancements
Bug Fixes
assert scope.isEquivalentTo(lastParent.getParent())
with an if
and log
what lastParent
was when condition is false
, so root cause can be traced.
Enhancements
Decompile .beam
files
.beam
files.beam
filesGo To Symbol for Modules defined in .beam
files (both SDK and deps)
:idna
)Enum
)Completion for Modules defined in .beam
files (both SDK and deps)
Enum
).beam
filesMacros appear before functions in decomplied .beam
files
ELIXIR_VERSION
for 1.2.*
from 1.2.3
to 1.2.6
ELIXIR_VERSION
1.3.4
ELIXIR_VERSION
1.4.0
IDEA
for 2016.*
to 2016.3.1
OtpErlangBitStr
(and therefore OtpErlangBinary
contents when tests fail
to_charlist
instead of to_char_list
for Elixir
<= 1.3
. Depends on Elixir version of project SDK.
elixir
instead of java
VM, so now Erlang and Elixir don't need to be built
on travis-ci, but ant
and the jdk
need to be installed, but unlike Erlang and
Elixir, there are tarballs for that, so this way is faster than the old method without depending on
Travis-CI cache.
multiResolve
causes a StackOverflow
for
org.elixir_lang.annotator.Callable.visitCall
, then catch
it and use
errorreport
logger to log the element.
errorreport
excerptStackOverflow
related to import
sLookupElement#getObject
when LookupElement#getPsiElement
is
null
to track down how it was null
in
#563.
Switch to Gradle for builds.
./gradlew runIde
(or the runIde (VERSION)
Run Configurations) will run IDEA
in a sandbox with the development version of the plugin.
./gradlew test
(or the test (VERSION)
Run Configurations) will run the main
plugin and jps-builder tests.
./gradlew publishPlugin
, BUT you'll need to
fill in publish*
properties in gradle.properties
. This will
eventually allow for automated "nightlies" from successful Travis-CI builds on
master
.
Callable
annotator is meant for variables, parameters, and macro and function calls and
declarations. The ModuleAttribute
annotator handles module attribute declaration and usage,
so we can save reference resolution time by skipping module attributes in Callable
.
defmodule
.
Callable.callDefinitionClauseDefiner(Call)
: in addition to the current
CallDefinitionClause
, make it work for Implementation
, Module
,
and Protocol
.
Bug Fixes
MatchOperatorInsteadOfTypeOperator
.beam
file when decompiling to defmacro
calls because
the Erlang function for Elixir macros has one addition argument: the first argument is the
Caller
of the macro.
BeamFileImpl
VirtualFile
argument to BeamFileImpl#buildFileStub
.++
, =~
, and in
to INFIX_OPERATOR_SET
.
2
.
+
and -
are both binary and unary operators.
When a unary operator they need to be wrapped in parentheses, so that the call definition clause is parsed
correctly.
JFLex
jarelixir-lang/elixr
files remove in 1.3
nil
as a keyword key. nil
was being lexed as a potential keyword key, but
NIL
was missing from the token list in the keywordKey grammar rule.
unquote
.
MultipleAliases
for variable declarations.MultipleAliases
as invalid.import Kernel
in kernel.ex
to prevent stack overflow due to recursive
import
(+value)
can be see as
+
operator type spec.
IndexNotReadyException
documentation and check
DumbService.isDumb(Project)
before calling StubIndex.getElements
in
Module
and module.MultiResolve.indexNameElements
.
assert
that LookupElement#getPsiElement
is not null
in
CallDefinitionCluase.renderElement
ant
1.10.1
because 1.10.0
is no longer hosted.ElixirVariable
isn't necessarily a variable if it doesn't occur in a
declaration context. It could just be a no-parentheses function call in the wrong spot, so check the
parent PsiElement
to determine if ElixirVariable
is a variable.
maybe(t)
in @type maybe(t)
) the same as a
full type definition (maybe(t)
in @type maybe(t) :: t | nil
)
do:
as atom in demo textreferrer
Callable
. The resolved
may be outside the file if it is a cross-file function
or macro usage, in which case it's TextRange
should not be highlighted because it is
referring to offsets in a different file.
Variable
scope for QualifiedMultipleAliases
, which occurs when qualified call
occurs over a line with assignment to a tuple, such as
Qualifier.
{:ok, value} = call()
ESC
was hit to cancel the completion, which became excessive once the index of
call definition clauses was expanded by the decompilation of the Elixir standard library
.beam
s, so disable it. If bare-words completion is restored. It will either (1) need to
not use the Reference#getVariants()
API because it generates too many objects that need to
be thrown away or (2) need to only complete call definition clauses that are provably in-scope from
imports or other macros.
LICENSE.md
CODE_OF_CONDUCT.md
when
operation in case it's a guarded function head in
org.elixir_lang.annonator.Parameter.putParameterized(Parameter, PsiElement)
def*
call is
encountered.
ModuleImpl#getProject()
to prevent StackOverflowError
. Without
overriding #getProject()
, IdentifierHighlighterPass
gets stuck in a loop
between getManager
and getProject
on the target (the ModuleImpl
)
when clicking on the space between def
s or defmacro
s in the decompiled
.beam
files.
CallDefinitionClause
completion provider is unexpectedly invoked both when .
is
typed, but continues to be invoked after a letter is typed after the .
; however, once the
letter is typed, the letter becomes the default prefix instead, so the prefix should only be reset to
""
when it ends in .
.
Callable#getVariants
unless Unqualified
to prevents local functions and
macros being shown as completions for qualified names.
Among many other tweaks, the String color is now green, so that Atom and String are no longer close to one another, which was the original issue in #569
Alias
now has underscored
effectBrackets
are now greenish instead of brownishCallbacks
are now a lighter blue and has underscored
effectCharList
is little lighterCharToken
is dark yellow now instead of dark purpleDot
is now purple instead of dark redExpression Substitution Mark
is a little lighterInterpolation
is now lime greenKernel Macros
are a burnt orangeMap
is now a dark blue instead of a dark yellowOperation Sign
is a little lighterParameters
are a little darkerParentheses
are redderPredefined
is orange instead of blueSpecification
is now red instead of purpleStruct
is now purple instead of yellowType
is now green instead of dark purpleVariable
is more tealishCONTRIBUTING.md
CONTRIBUTING.md
null
for For.resolveResultList
Protocol.resolveResultList
is null
match
Call
is an UnqualifiedNoArgumentCall
, in addition to
being 0 resolved final arity, before checking if the name matches.
Incompatible Changes
^^^
to its own three-operator precedence level to match 1.2
. This does
mean the parsing will be wrong for Elixir 1.1
, but is simpler than maintaining two grammars
for those that are still using Elixir 1.1
.
ant
build files have been removed. To build the build plugin (for Install From Disk),
use the ./gradlew buildPlugin
.


Run a list of analyses
runPheValuatorAnalyses( connectionDetails, cdmDatabaseSchema, oracleTempSchema = NULL, cohortDatabaseSchema = cdmDatabaseSchema, cohortTable = "cohort", workDatabaseSchema = cdmDatabaseSchema, cdmVersion = 5, outputFolder, pheValuatorAnalysisList )
| connectionDetails | An R object of type |
|---|---|
| cdmDatabaseSchema | The name of the database schema that contains the OMOP CDM instance. Requires read permissions to this database. On SQL Server, this should specifiy both the database and the schema, so for example 'cdm_instance.dbo'. |
| oracleTempSchema | A schema where temp tables can be created in Oracle. |
| cohortDatabaseSchema | The name of the database schema that is the location where the cohort data used to define the at risk cohort is available. Requires read permissions to this database. |
| cohortTable | The tablename that contains the at risk cohort. The expectation is cohortTable has format of COHORT table: cohort_concept_id, SUBJECT_ID, COHORT_START_DATE, COHORT_END_DATE. |
| workDatabaseSchema | The name of the database schema that is the location where a table can be created and afterwards removed. Requires write permissions to this database. |
| cdmVersion | Define the OMOP CDM version used: currently supports "5". |
| outputFolder | Name of the folder where all the outputs will be written to. |
| pheValuatorAnalysisList | A list of objects of type |
A data frame specifiying where the constructed evaluation cohort and phenotype evaluation results can be found in the local file system.
Run a list of analyses.


|
EvolutronicLife
1.0
|
Functions | |
| def | init_map |
| def | _parse_map |
| def | _init_entity |
| def | token_map |
| def | watch_info |
| def | set_watched_entity |
| def | update |
| def | _handle_animal_type |
| def | _veggie_action |
| def | _protozoan_action |
| def | _spawner_action |
| def | _init_env_rings |
| def | _calculate_env_ring |
Variables | |
| dictionary | _entity_dict |
| list | _plants = [] |
| list | _herbivores = [] |
| list | _carnivores = [] |
| list | _spawners = [] |
| list | _protozoans = [] |
|
private |
calculates the tile ring of the given scope around the tile at position center_y/center_x. tile coordinates that are outside of the map will be ignored. :param tile_map: 2D list containing all tiles of the map :param pos_y: y-coordinate of the tile :param pos_x: x-coordinate of the tile :param scope: expanse of the tile ring list to be calculated scope = 1 [0][1][2] scope = 2 [x][x][x][x][x] [3][o][4] [x] [x] [5][6][7] [x] [o] [x] [x] [x] [x][x][x][x][x] :return: tile ring list
Definition at line 251 of file MapManager.py.
|
private |
lets all animals of the hunter class act. eaten prey will be removed from the corresponding prey list. newborn/starved hunters will be added/removed from the corresponding hunter lists. :param hunter_class: the hunter class :param prey_class: the prey class
Definition at line 130 of file MapManager.py.
|
private |
initialises actual entity from the token and adds it to one of the entity lists, if it belongs there. the entity will associate itself with the given tile :param token: textual token representing the entity :param tile: the tile to be associated with the entity
Definition at line 67 of file MapManager.py.
|
private |
initialises the environment rings for each tile of the map. :param tile_map: 2D list containing all tiles of the map :param num_rings: the number of environment rings to set up for each tile
Definition at line 237 of file MapManager.py.
|
private |
initialises internal map (2D-list) with tiles and puts initialised entity on each tile if there is one on that position. :param map_path: relative path to the map file :return: tile_map
Definition at line 45 of file MapManager.py.
|
private |
lets all proto animals act. if it makes the jump onto the beach, the old protozoan entity will be removed from and the new animal added to the corresponding list. protozoans can also die of age when trying to move.
Definition at line 206 of file MapManager.py.
|
private |
each spawning entity tries to spawn a new protozoan. the protozoan will be added to the corresponding list.
Definition at line 226 of file MapManager.py.
|
private |
lets all plants act. new plants (reproduction) will be added to the plants list.
Definition at line 190 of file MapManager.py.
| def MapManager.init_map | ( | map_filename | ) |
sets up the tile_map and map dimension info as global module vars :param map_filename: relative path to the map file
Definition at line 34 of file MapManager.py.
| def MapManager.set_watched_entity | ( | pos_y, | |
| pos_x | |||
| ) |
Definition at line 110 of file MapManager.py.
| def MapManager.token_map | ( | ) |
builds a token map from the tile map :return: textual representation of the current map
Definition at line 96 of file MapManager.py.
| def MapManager.update | ( | ) |
updates all entities. this is done in multiple steps, updating each entity type separately, one after another.
Definition at line 117 of file MapManager.py.
| def MapManager.watch_info | ( | ) |
Definition at line 104 of file MapManager.py.
| list MapManager._carnivores = [] |
Definition at line 29 of file MapManager.py.
| dictionary MapManager._entity_dict |
Definition at line 7 of file MapManager.py.
| list MapManager._herbivores = [] |
Definition at line 28 of file MapManager.py.
| list MapManager._plants = [] |
Definition at line 27 of file MapManager.py.
| list MapManager._protozoans = [] |
Definition at line 31 of file MapManager.py.
| list MapManager._spawners = [] |
Definition at line 30 of file MapManager.py.


Apple’s accessibility consistency
This article will explore Apple’s consistent attention to accessibility, and how other tech companies with commitments to accessibility, like Microsoft and Google, compare to Apple in their accessibility efforts. It also shows where these companies can improve their consistency, and that no company is perfect at being an Assistive Technology provider yet.
Introduction
Apple has shown a commitment to accessibility since the early days of the iPhone, and since mac OSX Tiger. Its VoiceOver screen reader was the first built-in screen reader of any usability on a personal computer and smart phone. Now, VoiceOver is on every Apple product, even the HomePod. It is so prevalent that people I know have begun calling any screen reader “VoiceOver.” This level of consistency should be congratulated in a company of Apple’s size and wealth. But is this a continual trend, and what does this mean for competitors?
This will be an opinion piece. I will not stick only to the facts as we have them, and won’t give sources for everything which I show as fact. This article is a testament to how accessibility can be made a fundamental part of a brand’s experience for effected people, so feelings and opinions will be involved.
The trend of accessibility
The following sections of the article will explore companies trends of accessibility so far. The focus is on Apple, but I’ll also show some of what its competitors have done over the years as well. As Apple has a greater following of blind people, and Applevis has documented so much of Apple’s progress, I can show more of it than I can its competitors, whose information written by their followers are scattered, thus harder to search for.
Apple
Apple has a history of accessibility, shown by this article. Written just under a decade ago, it goes over the previous decade’s advancements. As that article has done, I will focus on little of a company’s talk of accessibility, but more so its software releases and services.
Apple is, by numbers and satisfaction, the leader in accessibility for users of its mobile operating systems, but not in general purpose computer operating systems. Microsoft’s Windows is used far more than Apple’s MacOS. Besides that, and services, Apple has made its VoiceOver screen reader on iOS much more powerful, and even flexible, than its competitor, Google’s TalkBack.
iOS
As iPhones were released each year, so were newer versions of iOS. In iOS 6, accessibility settings began working together, VoiceOver’s Rotor gained a few new abilities, new braille displays worked with VoiceOver, and bugs were fixed. In iOS 7, we gained the ability to have more than one high quality voice, more Rotor options, and the ability to write text using handwriting.
Next, iOS 8 was pretty special to me, personally, as it introduced the method of writing text that I almost always use now, Braille Screen Input. This lets me type on the screen of my phone in braille, making my typing exponentially faster. Along with typing, I can delete text, a word or character, and now, send messages from within the input mode. I can also change braille contraction levels, and lock orientation into one of two typing modes. Along with this, Apple added the Alex voice, its most natural yet, which was only before available on a Mac. For those who do not know braille or handwriting, a new “direct touch typing” method allows a user to type as quickly as a sighted person, if they can memorize exactly where the keys are, or have spell check and autocorrection enabled.
In iOS 9, VoiceOver users are able to choose Siri voices to speak using VoiceOver, as an extension of the list of Vocalizer voices, and Apple’s Alex voice. One can now control speech rate more easily, and the speed of speech can be greater than previously possible. One can control the time a double tap should take, a better method of selecting text, braille screen input improvements, and braille display fixes and new commands.
Then, iOS 10 arrived, with a new way to organize apps, a pronunciation dictionary, even more voices, reorganized settings, new sounds for actions, a way to navigate threaded email, and some braille improvements. One great thing about the pronunciation editor is that it does not only apply to the screen reader, as in many Windows screen readers, but to the entire system speech. So, if you use VoiceOver, but also Speak Screen, both will speak as you have set them to. This is a testament to Apple’s attention to detail, and control of the entire system.
With the release of iOS 11, we gained the ability to type to Siri, new Siri voices, verbosity settings, the ability to have subtitles read or brailled, and the ability to change the speaking pitch of the voice used by VoiceOver. VoiceOver can now describe some images, which will be greatly expanded later. We can now find misspelled words, which will also be expanded later. One can now add and change commands used by braille displays, which, yes, will be expanded upon later. A few things which haven’t been expanded upon yet are the ability to read formatting, however imprecise, with braille “status cells,” and the “reading” of Emoji. Word wrap and a few other braille features were also added.
Last year, in iOS 12, Apple added commands to jump to formatted text for braille display users, new Siri voices, verbosity options, confirmation of rotor actions and sent messages, expansion of the “misspelled” rotor option for correcting the misspelled word, and the ability to send VoiceOver to an HDMI output.
Finally, In iOS 13, Apple moved accessibility to the main settings list, out of the General section, provided even more natural Siri voices, haptics for VoiceOver, to aid alongside, or replace, the sounds already present, and the ability to modify or turn them off. A “vertical scroll bar” has also been added, as another method of scrolling content. VoiceOver can now give even greater suggestions for taking pictures, aligning the camera, and with the iPhone 11, what will be in the picture. One can also customize commands for the touch screen, braille display, and keyboard, expanding the ability braille users already had. One can even assign Siri shortcuts to a VoiceOver command, as Mac users have been able to do with Apple Script. One can now have VoiceOver interpret charts and graphs, either via explanations of data, or by an audible representation of them. This may prove extremely useful in education, and for visualizing data of any type. Speaking detected text has improved over the versions to include the detecting of text in unlabeled controls, and now can attempt to describe images as well. Braille users now have access to many new braille tables, like Esperanto and several other languages, although braille no longer switches languages along with speech.
MacOS
MacOS has not seen so much improvement in accessibility over the years. VoiceOver isn’t a bad screen reader, though. It can be controlled using a trackpad, which no other desktop screen reader can boast. It can be used to navigate and activate items with only the four arrow keys. It uses the considerable amount of voices available on the Mac and for download. It simply isn’t updated nearly as often as VoiceOver for iOS.
OSX 10.7, 10.8, and 10.9 have seen a few new features, like more VoiceOver voices, braille improvement, and other things. I couldn’t find much before Sierra, so we’ll start there.
In Sierra, Apple added VoiceOver commands for controlling volume, to offset the absence of the physical function keys in new MacBook models. VoiceOver can also now play a sound for row changes in apps like Mail, instead of interrupting itself to announce “one row added,” because Apple’s speech synthesis server on the Mac doesn’t innately support a speech queue. This means that neither does VoiceOver, so interruptions must be worked around. Some announcements were changed, HTML content became web areas, and interaction became “in” and “out of” items. There were also bug fixes in this release.
In High Sierra, one can now type to Siri, VoiceOver can now switch languages when reading multilingual text, as VoiceOver on the iPhone has been able to do since iOS 5 at least, improved braille editing and PDF reading support, image descriptions, and improved HTML 5 support.
In MacOS Mojave, Apple added the beginning of new iPad apps on Mac. These apps work poorly with VoiceOver, even still in Catalina. There were no new reported VoiceOver features in this release.
This year, In MacOS Catalina, Apple added more control of punctuation, and XCode 11’s text editor is now a little more accessible, even though the Playgrounds function isn’t, and the Books app can now, after years of being on the Mac, be used for basic reading of books. Braille tables from iOS 13 are also available in MacOS.
The future of Apple accessibility
All of these changes, however, were discovered by users. Apple doesn’t really talk about all of its accessibility improvements, just some of the highlights. While I see great potential in accessible diagrams and graphs, Apple didn’t mention this, and users had to find this. Subsequently, there may be fixes and features that we still haven’t found, three versions of iOS 13 later. Feedback between Apple and its customers has never been great, and this is only to Apple’s detriment. Since Apple rarely responds to little feedback, users feel that their feedback doesn’t mean anything, so they stop sending it. Also of note is that on VoiceOver’s Mac accessibility page, the “Improved PDF, web, and messages navigation” section is from macOS 10.13, two versions behind what is currently new in VoiceOver.
Another point is that services haven’t been the most accessible. Chief among them is Apple Arcade, which has no accessible games, so far. Apple research, I’ve found, has some questions which have answers that are simply unlabeled buttons. While Apple TV Plus has audio description for all of their shows, this is a minor glimmer of light, shrouded by the inaccessibility of Apple Arcade, which features, now, over one hundred games, none of which I can play with any success. In all fairness, a blind person who is patient may be able to play a game like Dear Reader, which has some accessible items, but the main goal of that game is to find a word in a different color and correct it, which is completely at odds with complete blindness, but could be handled using speech parameter changes, audio cues, or other signals of font, color, or style changes.
Time will tell if this new direction, no responsibility for not only other developers’ work, but also the Mac and work done by other developers and flaunted by Apple, will become the norm. After all, Apple Arcade is an entire Tab of the App Store; inaccessibility is in plain view. As a counterpoint, the first iPhone software, and even the second version, was inaccessible to blind people, but now the iPhone is the most popular smart phone, in developed nations, for blind people.
Perhaps next year, Apple Arcade will have an accessible game or two. I can only hope that this outcome comes true, and not the steady stepping back of Apple from one of their founding blocks: accessibility. We cannot know, as no one at Apple tells us their plans. We aren’t the only ones, though, as mainstream technology media shows. We must grow accustom to waiting on Apple to show new things, and reacting accordingly, but also providing feedback, and pushing back against encroaching inaccessibility and decay of macOS.
Apple’s competitors
In this blog post, I compare operating systems. To me, an operating system is the root of all software, and thus, the root of all digital accessibility. With this in mind, the reader may see why it is imperative that the operating system be as accessible, easy and delightful to use, and promote productivity as much as possible. Microsoft and Google are the largest competitors of Apple in the closed source operating system space, so they are what I will compare Apple to in the following sections.
Google is the main contributor to the Android and Chromium projects. While both are open source, both are simply a base to be worked from, not the end result. Not even Google’s phones run “pure” Android, but have Google services and probably other things on the phone as well. Both, though, have varying accessibility as well. While Apple pays great attention to its mobile operating system’s accessibility, Google does not seem to put many resources towards that. However, its Chrome OS, which is used much in education, is much more easily accessible, and even somewhat of an enjoyable experience for a lite operating system.
Android
Android was released one year after iOS. TalkBack was released as part of Android 1.6. Back then, it only supported navigation via a keyboard, trackpad, or scroll ball. It wasn’t until version 4 when touch screen access was implemented into TalkBack for phones, and up to this day, only supports commands done with one finger, two finger gestures being passed through to Android as one finger commands. TalkBack has worked around this issue by recently, in Android version 8, gaining the ability to use the finger print sensor, if available, as a gesture pad for setting options, and the ability the switch spoken language, if using Google TTS, when reading text in more than one language. TalkBack uses graphical menus for setting options otherwise, or performing actions, like deleting email. It can be used with a Bluetooth keyboard. By default, it uses Google TTS, a lower quality, offline version of speech used for things like Google Translate, Google Maps, and the Google Home. TalkBack cannot use the higher quality Google TTS voices. Instead, voices from other vendors are downloaded for more natural sound.
BrailleBack, discussed on its Google Support page, is an accessibility service which, when used with TalkBack running, provides rudamentary braille support to Android. Commands are rugged, meaningless, and unfamiliar to users of other screen readers, and TalkBack’s speech cannot be turned off while using Brailleback, meaning that, as one person helpfully provided, that one must plug in a pair of headphones and not wear them, or turn down the phone’s volume, to gain silent usage of one’s phone using braille. Silent reading is one of braille’s main selling points, but accessibility, if not given the resources necessary, can become a host of workarounds. Furthermore, brailleback must be installed onto the phone, providing another barrier to entry for many deaf-blind users, so some simply buy iPods for braille if they wish to use an Android phone for customization or contrarian reasons, or simply stick with the iPhone as most blind people do.
Now, though, many have moved to a new screen reader created by a Chinese developer, called Commentary. This screen reader does, however, have the ability to decrypt your phone if you have encryption enabled. For braille users, BRLTTY is used for braille usage. This level of customization, offset by the level of access which apps have to do anything they wish to your phone, is an edge that some enjoy living on, and it does allow things like third-party, and perhaps better screen readers, text to speech engines, apps for blind people like The vOICe, which gives blind people artificial vision, and other gray area apps like emulators, which iOS will not accept on the App Store. Users who are technically inclined do tend to thrive on Android, finding workarounds a joy to find and use, whereas people who are not, or are but do not want to fiddle with apps to replace first-party apps which do not meet the needs of the user, and unoptimized settings, find themselves doing more configuring of the phone than using it.
Third party offerings, like launchers, mail apps, web browsers, file managers, all have variable accessibility, which can change from version to version. Therefore, one must navigate the shifting landscape of first party tools which may sort of be good enough, third party tools which are accessible enough but may not do everything you need, and tools which users have found workarounds for using them. Third party speech synthesizers are also hit or miss, with some not working at all, others, like Eloquence, being now unsupported, and more, like ESpeak, sounding unnatural. The only good braille keyboard which is free hasn’t been updated in years, and Google has not made one of their own.
Because of all this, it is safe to say that Android can be a powerful tool, but has not attained the focus needed to become a great accessibility tool as well. Google has begun locking down its operating system, taking away some things that apps could do before. This may come to inhibit third party tools which blind people now use to give Android better accessibility. I feel that it is better to have been on iOS, where things are locked down much, but you have, at least somewhat, a clear expectation of fairness on Apple’s part. Android is not a big income source for Google, so Google does not have to answer to app developers.
Chrome OS
Chrome OS is Google’s desktop operating system, running Chrome as the browser, with support for running Android apps. Its accessibility has improved plenty over the years, with ChromeVox gaining many features which make it a good screen reader. You can read more about chromeVox.
One of the main successes to ChromeVox is its braille support. It is normal for most first-party screen readers to support braille nowadays. When one plugs in a braille display to a Chromebook with ChromeVox enabled, ChromeVox begins using that display automatically, if it is supported. The surprise here is that if one plugs it in when ChromeVox is off, ChromeVox will automatically turn on, and begin using the display. This is beyond what other screen readers can do. ChromeVox, and indeed TalkBack, do not yet support scripting, editing punctuation and pronounciation speech, and do not have “activities” as VoiceOver for iOS and Mac have, but ChromeVox feels much more polished and ready for use than TalkBack.
The future of Google accessibility
Judging by the past, Google may add a few more features to TalkBack, but less than Apple adds to iOS. They have much to catch up on, however, as they have only two years ago added the ability for TalkBack to detect and switch languages, and use the finger print sensor like VoiceOver’s rotor. I have not seem much change over the two years since, except making a mode for tracking focus from a toggle to a mandatory feature. I suspect that, in time, they will remove the option to disable explore by touch, if they’ve not already.
With Chrome OS, and Google Chrome in general, I hope that the future brings better things, now that Microsoft is involved in Chromium development. It could become even more tied to web standards. Perhaps ChromeVox will gain better sounding offline voices than Android’s lower quality Google TTS ones, or gain sounds performed using spacial audio for deeper immersion.
Microsoft
Microsoft makes only one overarching operating system, with changes for XBox, HoloLens, personal computers, and other types of hardware. Windows has always been the dominant operating system for general purpose computing for blind people. It hasn’t always been accessible, and it is only in recent years that Microsoft have actively turned their attention to accessibility on Windows and XBox.
Now, Windows’ accessibility increases with each update, and Narrator becomes a more useful screen reader. I feel that, in a year or so, blind people may be trained to use Narrator instead of other screen readers on Windows.
Windows
In the early days of Windows, there were many different screen readers competing for dominance. JAWS, Job Access with Speech, was the most dominant, with Window-Eyes, now abandoned, as second. They gathered information from the graphics card to describe what was on the screen. There were no accessibility interfaces back then.
Years later, when MSAA, Microsoft Active Accessibility, was created, Window-Eyes decided to lean on that, while JAWS continued to use video intercept technology to gather information. In Windows 2000, Microsoft shipped a basic screen reader, Narrator. It wasn’t meant to be a full, useful screen reader, but one made so that a user could set up a more powerful one.
Now, we have UI Automation, which is still not a very mature product, as screen readers are still not using it for everything, like Microsoft Office. GW Micro, makers of Window-eyes, bonded with AI Squared, producers of the ZoomText magnifier, which was bought by Freedom Scientific, whom promptly abandoned Window-eyes. These days, JAWS is being taken on by NVDA, Nonvisual Desktop Access, a free and open source screen reader, and Microsoft’s own Narrator screen reader.
In Windows 8, Microsoft began adding features to Narrator. Now, in Windows 10, four years later, Narrator has proven itself useful, and in some situations, helpful in ways that all other screen readers have not been. For example, one can install, setup, and begin using Windows 10 using Narrator. Narrator is the only self-described screen reader which can, with little configuration, show formatting not by describing it, but by changing its speech parameters to “show” formatting by sound. The only other access technology which does this automatically is Emacspeak, the “complete audio desktop.” Its braille support must be downloaded and installed, for now, but is still better than Android’s support. Narrator cannot, however, use a laptop’s trackpad for navigation. Instead, Microsoft decided to add such spacial navigation to touchscreens, meaning that a user must reach up and feel around a large screen, instead of using the level trackpad as a smaller, more manageable area.
Speaking of support, Microsoft’s support system is better in a few ways. First, unlike Apple, their feedback system allows more communication between the community and Microsoft developers. Users can comment on issues, and developers can ask questions, a bit like on Github. Windows Insider builds come with announcements by Microsoft with what is new, changed, fixed, and broken. If anything changes regarding accessibility, it is in the release notes. Microsoft is vocal about what is new in accessibility of Windows, in an era when many other companies seem almost ashamed to mention it in release notes. This is much better than Apple’s silence on many builds of their beta software, and no notice of accessibility improvements and features at all. Microsoft’s transparency is a breath of fresh air to me, as I am much more confident in their commitment to accessibility for it.
Their commitment, however, doesn’t seem to pervade the whole company. The Microsoft Rewards program is hard to use for me, and contains quizzes where answers must be dragged and dropped. This may be fun for sighted users, but I cannot do them with any level of success, so they aren’t fun for me at all. Another problem is the quality of speech. While Apple has superb speech options like Macintalk Alex, Vocalizer, or the Siri voices, Microsoft’s offline voices sound bored, pause for too long, and have a robotic buzzing sound as they speak. I think that a company of Microsoft’s size could invest in better speech technology, or make their online voices available for download for offline use. Feedback has been given about this issue, so perhaps the next version of Windows will have more pleasant speech.
Windows has a few downsides, though. It doesn’t support sound through its Linux subsystem, meaning I cannot use Emacs, with Emacspeak. Narrator does not yet report when a program opens, or when a new window appears, and other visual system events. Many newer Universal Windows apps can be tricky to navigate, and the Mail app still automatically expands threads as I arrow to them, which I do not want to happen, making the mail app annoying to use.
The future of Microsoft accessibility
I think that the future of Microsoft, regarding accessibility, is very bright. They seem dedicated to the cause, seeking feedback much more aggressively than Apple or Google, and many in the blind community love giving it to them. Windows will improve further, possibly with Narrator gaining the ability to play interface sounds in immersive audio using Windows Sonic for Headphones, braille becoming a deeper, and built in part of Narrator, and higher quality speech made available for download. Since Microsoft is also a gaming company, it could work on creating sound scapes for different activities: browsing the web, writing text, coding, reading, to aid in focus or creativity. Speech synthesis could be given even more parameters for speaking even more types of formatting or interface item types. really, with Microsoft’s attention to feedback, I feel that their potential is considerable for accessibility. Then again, it is equally possible that Apple will implement these features, but they aren’t as inviting as Microsoft when it comes to sharing what I’d love in an operating system as Microsoft has been, so I now just report bugs, not giving Apple new ideas.
Conclusion
It may be interesting to note the symmetry of accessibility: Apple’s phone is the dominant phone, but Microsoft’s Windows platform is the dominant laptop and desktop system among blind people. Apple’s iPhone is more accessible than Google’s Android, but Google’s Chrome OS is more polished and updated accessibility-wise than Apple’s MacOS. Personally, I use a Mac because of its integration with iOS Notes, Messages, Mail, and other services, the Mail app is a joy to breeze through email with, and open source tools like Emacs with Emacspeak do not work as well on Windows. Also, speech matters to me, and I’d probably fall asleep much more often hearing Microsoft’s buzzing voices than the somewhat energetic sound of Alex on the Mac, who speaks professionally, calmly, and never gets bored. I do, however, use Windows for heavy usage of the web, especially Google web apps and services, and gaming.
Time will tell if companies continue in their paths, Apple forging ahead, Microsoft burning bright, and Google… being Google. I hope, nevertheless, that this article has been useful for the reader, and that my opinions have been as fair as possible towards the companies. It should be noted that the accessibility teams for each company are individuals, have their own ideas of what accessibility is, means, and should be, and should be treated with care. After all, this past decade has been a long journey of, probably, most effort spent convincing managers that the features we now have are worth spending time on, and answering user complaints of “my phone is talking to me and i want it turned off right now!”.
This does not excuse them for the decay of Android and Mac accessibility, and the lack of great speech options on Windows. It does not excuse them for Apple Arcade’s lack of accessible games, or Microsoft Rewards’ inaccessible quizzes. We must give honest, complete, and critical feedback to these people. After all, they do not know what we need, what will be useful, or, if we dare tell, what will be delightful for us to use, unless we give them this feedback. This applies to all software, whether it be Apple’s silent gathering of feedback, Microsoft’s open arms and inviting offers, or open source software’s issue trackers, Discord servers, mailing lists, and Github repositories. If we want improvement, we must ask for it. If we want a better future, we must make ourselves heard in the present. Let us all remember the past, so that we can influence the future.
Now, what do you think of all this? Do you believe Apple will continue to march ahead regarding accessibility, or do you think that Microsoft, or even Google, has something bigger planned? Do you think that Apple is justified in their silence, or do you hope that they begin speaking more openly about their progress, at least in release notes? Do you like how open Microsoft is about accessibility, or do they even talk about accessibility for blind users enough to you? I’d love to know your comments, corrections, and constructive criticism, either in the comments, on Twitter, or anywhere else you can find me. Thanks so much for reading!
Comments


Great deals for you
Individual entry
Full access to all park amenities for 1 day!
- $100
- Includes all rides.
- Great option for individual visitors.
Buy now
Entry for two
Full access to all park amenities for 1 day for 2 people.
- $180
- Includes all rides.
- Great option for couples.
Buy now
Family entry
Full access to the park for the whole family.
- $120 per 2 adults + $80 per child
- Includes all rides.
- Great option for families
Buy now
Group entry
Travelling in a group of 5 or more? You're in for a 20% discount, plus a special treat!
- Please email us at<EMAIL_ADDRESS>for pricing.
- Includes express all rides.
- Includes special treat.
- Great option for groups.


About
Contact
Welcome to ArTeach
Admin
Home
Log out
Email Field must not be Blank!
Email Field must not be Blank!


Esistono innumerevoli variazioni dei passaggi del Lorem Ipsum, ma la maggior parte hanno subito delle variazioni del tempo, a causa dell’inserimento di passaggi ironici, o di sequenze casuali di caratteri palesemente poco verosimili. Se si decide di utilizzare un passaggio del Lorem Ipsum, è bene essere certi che non contenga nulla di imbarazzante.
In genere, i generatori di testo segnaposto disponibili su internet tendono a ripetere paragrafi predefiniti, rendendo questo il primo vero generatore automatico su intenet. Infatti utilizza un dizionario di oltre 200 vocaboli latini, combinati con un insieme di modelli di strutture di periodi, per generare passaggi di testo verosimili. Il testo così generato è sempre privo di ripetizioni, parole imbarazzanti o fuori luogo ecc.
| Dan | Odpiralni čas |
|---|---|
| Ponedeljek | 8.00 - 16.00 |
| Torek | 10.00 - 20.00 |
| Sreda | 8.00 - 16.00 |
| Četrtek | 8.00 - 16.00 |
| Petek | 10.00 - 20.00 |
| Sobota | 8.00 - 16.00 |
* Ob nedeljah in praznikih smo zaprti.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five http://jquery2dotnet.com/ centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
Contrary to popular belief, Lorem Ipsum is not simply random text.  Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text.


Sorry, the page you are requesting is almost done. Be patient to come later to get it! Back to Home Page.


Luxury Cars
Choose a Car Manufacturer
Porsche
Nissan
BMW
Audi
Choose a Survey Chart Type
Column
Bar
Doughnut
Line
Manufacturer
Model
Price
Description
Video
Quality Survey Scores
Customer Satisfaction Survey
Overall
Mechanical
Powertrain
Body
Interior
Accessories
Car Picture


@(nearby: Seq[ThreeOneOneCall], blurbPart: String) There were @nearby.length noise complaints near this building in the last year, which is @blurbPart for the neighborhood.


var count : int := 0
const height := 115
count := height - 5
Values can be written in base 2 or 16 or any other base in the range 2 to 36 (36 because there are 10 digits and 26 letters). This form begins with the base, such as 16, then #, and then the value written in that base, for example, 16#A has the value 10. The letters a, b, c represent the digit values 10, 11, 12 Capital letters A, B, C can be used instead of lower case. Here are some examples.
| 2#1 | = 1 | (Base 2) | |||||
| 2#11 | = 3 | (Base 2) | |||||
| 16#a | = 10 | (Base 16) | |||||
| 16#FF | = 255 | (Base 16) | |||||
| 16#FFFF | = 32767 | (Base 16) | |||||
| 8#10 | = 8 | (Base 8) |
Here is an example of using these:
You should be careful to avoid confusion about patterns such as 16#FFFF. It is tempting to think that this is the value 1, because the bit pattern (2-byte two's complement internal representation) for 1 is the same as the bit pattern for 16#FFFF = 32767. However, the value (as opposed to the internal representation) of 1 and 32767 are different.
const maxnat1 := 16#FF % Largest 1-byte natural number
const maxint2 := 16#7FFF % Largest 2-byte integer


The vector with x and y components $ \frac {\partial \mathrm{f}}{\partial \mathrm{x}} $ and $ \frac {\partial \mathrm{f}}{\partial \mathrm{y}} . $
This is often written grad(f) or ∇f.
The rate of change of f at (x,y) as we move in direction (u,v) is given by ∇f(x,y) ⋅ (u,v).
∇f is normal to surfaces on which f is constant.


Path Class
Models the path between two Nodes/Ports, which consists of a series of [Node/Port, Edge] pairs.
Item Index
Methods
Properties
Methods
contains
-
Node/Port/Edge,
-
[doNotFuzzyMatchNodes=false]
Returns whether or not a Path contains the given object.
Parameters:
Returns:
True if Path contains the object, false otherwise.
deleteAll
()
Deletes every object in this Path from the underlying Toolkit toolkit.
deleteEdges
()
Deletes every Edge in this Path from the underlying Toolkit toolkit.
deleteNodes
()
Deletes every Node in this Path from the underlying Toolkit toolkit. Note that this has the effect of also deleting all the Edges, so this is analogous to #deleteAll.
each
-
fn
Iterates through the path one step at a time. Each step consists of an object containing a
vertex
, and, for all entries except the first, an edge
member, which supplies the Edge that links
to the Vertex (which is why it is null for the first entry).
Parameters:
-
fn
FunctionFunction to call for each step. Arguments are
(index, {vertex:v,edge:e})
.
eachEdge
-
fn
Iterates through the Edges in the path one step at a time. There is always one fewer Edges than Nodes/Ports.
Parameters:
-
fn
FunctionFunction to call for each step. Arguments are
(index, Edge)
.
eachNode
-
fn
Iterates through the Nodes/Ports in the path one step at a time.
Parameters:
-
fn
FunctionFunction to call for each step. Arguments are
(index, Node|Port)
.
exists
()
Boolean
Returns whether or not a given path exists.
Returns:
True if path exists, false otherwise.
getCost
()
Number
Returns the cost of a given path, computed as the sum of the cost of all of the edges in the path.
Returns:
Total cost of the Path. Null if path does not exist.
getEdgeCount
()
Integer
Gets the number of Edges in the Path.
Returns:
Number of Edges in the Path.
getNodeAt
-
idx
Gets the Node at the given index in the path.
Parameters:
-
idx
Object
Returns:
getNodeCount
()
Integer
Gets the number of Nodes in the Path.
Returns:
Number of Nodes in the Path.
isEmpty
()
Boolean
Returns whether or not a given path is empty
Returns:
True if path is empty, false otherwise.
selectAllEdges
-
params
Select all edges in the toolkit toolkit.
Parameters:
-
params
ObjectParameters for the selectAllEdges call.
Properties
path
Graph.Path
The Path from the underlying Graph. See Graph documentation.


{% extends "base.html %"} {% block content %}
For horridly confusing situations like this, we suggest you go back to the homepage


Toggle navigation
About Us
SIGN UP
How can we help?
Get answers for the most common questions
Using Peersview
How can I Create a profile?
Who are Ex-students?
How to Become Top rated?

Close my Account
More
Policies and Reporting
How can I report violations?
How can I keep my account safe?
How can I Use the Forum?
More
Using the Online Campus
How can I register in the Campus?
I’m I eligible to join the Campus?
More
Network Administrators
More
Business Organisations
What charges apply for Advertising events?
More
Contact Us


WCAG-PAT - Web Content Accessibility Guidelines 2.0
This document is a WCAG Conformance statement, modeled after the Voluntary Product Accessibility Statement (
VPAT), but using the Web Content Accessibility Guidelines (
WCAG) as conformance criteria.
-
Date:
-
Name of Product:
-
Contact for more Information (name/phone/email):
Table of Contents
WCAG 2.0 Level A
Guideline 1.1 Text Alternatives
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
1.1.1 Non-Text Content All non-text content must have a text alternative that serves the same purpose. For images, ensure the alt attribute is an equivalent if the image is not presented.
|
|
|
Guideline 1.2 Time-based Media
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
1.2.1 Audio-only and Video-only (Prerecorded) For prerecorded audio-only and prerecorded video-only media, the following are true, except when the audio or video is a media alternative for text and is clearly labeled as such:
- Prerecorded Audio-only: An alternative for time-based media is provided that presents equivalent information for prerecorded audio-only content.
- Prerecorded Video-only: Either an alternative for time-based media or an audio track is provided that presents equivalent information for prerecorded video-only content.
|
|
|
|
1.2.2 Captions (Prerecorded) Captions are provided for all prerecorded audio content in synchronized media, except when the media is a media alternative for text and is clearly labeled as such.
|
|
|
|
1.2.3 Audio Description or Media Alternative (Prerecorded) An alternative for time-based media or audio description of the prerecorded video content is provided for synchronized media, except when the media is a media alternative for text and is clearly labeled as such.
|
|
|
Guideline 1.3 Adaptable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
1.3.1 Information and Relationships Ensure that information, structure, and relationships are programmatically determined. This includes using the most semantically appropriate elements, such as headings, paragraphs, lists, and so on, to provide structure.
|
|
|
|
1.3.2 Meaningful Sequence The correct reading sequence must be programmatically determined.
|
|
|
|
1.3.3 Sensory Characteristics Instructions provided for understanding and operating content do not rely solely on sensory characteristics of components such as shape, size, visual location, orientation, or sound
|
|
|
Guideline 1.4 Distinguishable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
1.4.1 Use of Color Color is not used as the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element.
|
|
|
|
1.4.2 Audio Control If any audio on a Web page plays automatically for more than 3 seconds, either a mechanism is available to pause or stop the audio, or a mechanism is available to control audio volume independently from the overall system volume level.
|
|
|
Guideline 2.1 Keyboard Accessible
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
2.1.1 Keyboard All functionality of the content must be operable using the keyboard-alone.
|
|
|
|
2.1.2 No Keyboard Trap If focus can be moved to a component on the page, focus can be moved away from that component.
|
|
|
Guideline 2.2 Enough Time
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
2.2.1 Timing Adjustable For content with a timeout, the user must be able to either turn off the timeout or extend the timeout.
|
|
|
|
2.2.2 Pause, Stop, Hide Content that blinks, scrolls, or updates very regularly should be able to be stopped so as to avoid causing distraction.
|
|
|
Guideline 2.3 Seizures
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
2.3.1 Three flashes or below Pages must not contain content that flashes more than three times in any one second period, or the flash is below the general red flash threshold, as this can cause light-sensitive seizures.
|
|
|
Guideline 2.4 Navigable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
2.4.1 Bypass Blocks A mechanism must be available for users to bypass blocks of content. This can include good use of headings, as headings allow users to navigate the document, and can help them understand the structure.
|
|
|
|
2.4.2 Page Titled Web pages must have titles that describe their topic or purpose.
|
|
|
|
2.4.3 Focus Order The order focusable components receive focus must be in an order that preserves meaning or operability.
|
|
|
|
2.4.4 Link Purpose in context The purpose of each link must be determinable from the link text alone, or from the link text along with the programmatically determinable context, such as a heading.
|
|
|
Guideline 3.1 Readable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
3.1.1 Language of the Page The default human language of the page must be programmatically determinable.
|
|
|
Guideline 3.2 Predictable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
3.2.1 On Focus When a component receives focus, it should not initiate a change of context, such as opening a new page when an element receives focus.
|
|
|
|
3.2.2 On Input Changing the settings of a control should not cause a change of context. For example, it should be possible to scroll through a dropdown list without an action being invoked that causes the user to open another page.
|
|
|
Guideline 3.3 Input Assistance
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
3.3.1 Error Identification If an input error is automatically detected, the item that is in error is identified and the error is described to the user in text.
|
|
|
|
3.3.2 Labels or Instructions Labels or instructions are provided when content requires user input.
|
|
|
Guideline 4.1 Compatible
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
4.1.1 Parsing Elements have complete start and end tags (except where it's allowable in HTML), elements are nested according to their specifications, elements do not contain duplicate attributes, and any IDs are unique.
|
|
|
|
4.1.2 Name, Role, Value For all user interface components (including but not limited to: form elements, links and components generated by scripts), the name and role can be programmatically determined; states, properties, and values that can be set by the user can be programmatically set; and notification of changes to these items is available to user agents, including assistive technologies.
|
|
|
Return to the top of the page
WCAG 2.0 Level AA
Guideline 1.2 Time-based Media
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
1.2.4 Captions (Live) Captions are provided for all live audio content in synchronized media.
|
|
|
|
1.2.5 Audio Description (Prerecorded) Audio description is provided for all prerecorded video content in synchronized media.
|
|
|
Guideline 1.4 Distinguishable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
1.4.3 Color Contrast Minimum Text and images should have a minimum color contrast ratio of 4.5:1.
|
|
|
|
1.4.4 Resize Text Text should be resizable up to 200 percent without a loss of content or functionality.
|
|
|
|
1.4.5 Images of Text If the technologies being used can achieve the visual presentation, text is used to convey information rather than images of text except for the following:
|
|
|
Guideline 2.4 Navigable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
2.4.5 Multiple Ways There should be more than one way to locate a web page within a set of web pages, except where the page is a step in a process.
|
|
|
|
2.4.6 Headings and Labels Headings and labels describe the topic or purpose. Descriptive headings help users navigate and orientate themselves within the content. Descriptive labels help ensure users do not make mistakes.
|
|
|
|
2.4.7 Focus Visible All user interface elements that receive focus must have a visible focus indicator.
|
|
|
Guideline 3.1 Readable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
3.1.2 Language of parts The human language of each passage or phrase in the content must be programmatically determined, except for proper names, technical words, words of indeterminate language, or words that have become the vernacular of the immediately surrounding text.
|
|
|
Guideline 3.2 Predictable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
3.2.3 Consistent Navigation Navigational mechanisms that are repeated on multiple Web pages within a set of Web pages occur in the same relative order each time they are repeated, unless a change is initiated by the user.
|
|
|
|
3.2.4 Consistent Identification Components that have the same functionality within a set of Web pages are identified consistently. This requires text alternatives being consistent throughout the document, and consistent labelling of form controls and table headers.
|
|
|
Guideline 3.3 Input Assistance
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
3.3.3 Error Suggestion If an input error is automatically detected and suggestions for correction are known, then the suggestions are provided to the user, unless it would jeopardize the security or purpose of the content.
|
|
|
3.3.4 Error Prevention – legal, financial, data For legal commitments or financial transactions, at least one of the following is true:
- Submissions are reversible.
- Data entered by the user is checked for input errors and the user is provided an opportunity to correct them.
- A mechanism is available for reviewing, confirming, and correcting information before finalizing the submission.
|
|
|
Return to the top of the page
WCAG 2.0 Level AAA
Guideline 1.2 Time-based Media
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
1.2.6 Sign Language (Prerecorded) Sign language interpretation is provided for all prerecorded audio content in synchronized media.
|
|
|
|
1.2.7 Extended Audio Description (Prerecorded) Where pauses in foreground audio are insufficient to allow audio descriptions to convey the sense of...
|
|
|
|
1.2.8 Media Alternative (Prerecorded) An alternative for time-based media is provided for all prerecorded synchronized media and for all p...
|
|
|
|
1.2.9 Audio-only (Live) An alternative for time-based media that presents equivalent information for live audio-only content...
|
|
|
Guideline 1.4 Distinguishable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
1.4.6 Contrast (Enhanced) The visual presentation of text and images of text has a contrast ratio of at least 7:1, except for ...
|
|
|
|
1.4.7 Low or No Background Audio For prerecorded audio-only content that (1) contains primarily speech in the foreground, (2) is not ...
|
|
|
|
1.4.8 Visual Presentation For the visual presentation of blocks of text, a mechanism is available to achieve the following: (L...
|
|
|
|
1.4.9 Images of Text (No Exception) Images of text are only used for pure decoration or where a particular presentation of text is essen...
|
|
|
Guideline 2.1 Keyboard Accessible
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
2.1.3 Keyboard (No Exception) All functionality of the content is operable through a keyboard interface without requiring specific...
|
|
|
Guideline 2.2 Enough Time
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
2.2.3 No Timing Timing is not an essential part of the event or activity presented by the content, except for non-in...
|
|
|
|
2.2.4 Interruptions Interruptions can be postponed or suppressed by the user, except interruptions involving an emergenc...
|
|
|
|
2.2.5 Re-authenticating When an authenticated session expires, the user can continue the activity without loss of data after...
|
|
|
Guideline 2.3 Seizures
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
2.3.2 Three Flashes Web pages do not contain anything that flashes more than three times in any one second period.
|
|
|
Guideline 2.4 Navigable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
2.4.8 Location Information about the user's location within a set of Web pages is available.
|
|
|
|
2.4.9 Link Purpose (Link Only) A mechanism is available to allow the purpose of each link to be identified from link text alone, ex...
|
|
|
|
2.4.10 Section Headings Section headings are used to organize the content. Note 1: "Heading" is used in its general se...
|
|
|
Guideline 3.1 Readable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
3.1.3 Unusual Words A mechanism is available for identifying specific definitions of words or phrases used in an unusual...
|
|
|
|
3.1.4 Abbreviations A mechanism for identifying the expanded form or meaning of abbreviations is available.
|
|
|
|
3.1.5 Reading Level When text requires reading ability more advanced than the lower secondary education level after remo...
|
|
|
|
3.1.6 Pronunciation A mechanism is available for identifying specific pronunciation of words where meaning of the words,...
|
|
|
Guideline 3.2 Predictable
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
3.2.5 Change on Request Changes of context are initiated only by user request or a mechanism is available to turn off such c...
|
|
|
Guideline 3.3 Input Assistance
|
Success Criteria
|
Supporting features
|
Remarks and Explanations
|
|
3.3.5 Help Context-sensitive help is available.
|
|
|
|
3.3.6 Error Prevention (All) For Web pages that require the user to submit information, at least one of the following is true: ...
|
|
|
Return to the top of the page