There is a first level heading but screen reader is reading as second level heading.

Check if <aria-label=”2?> is used with heading role.

Designed as a button but actually a link?

Do you wish that a link looks like a button but expose as link to screen reader users? Add <role="link"> to button element.

Use of ARIA is a requirement?

No. ARIA should be used when something cannot be achieved using semantics. Here is a great read about No ARIA is better than using bad ARIA

If search form does not have a “search” button, is it a violation of WCAG?

It’s not really a violation as long as there is a hint for users stating “pressing enter will search” and works well on responsive layout. Meaning the keyboard on touch device should trigger “go” button.

Is adding <lang> to one of the pages is enought?

As per Success Criterion 3.1.1 of Web Content Accessibility Guidelines 2.0, it’s essential to have language defined to the document. We have got a question that “Is defining <lang> to one of the pages on a website is sufficient or it has to be defined on all pages?”

Answer is Yes, we need to define on all of the pages. If there is a common <header> for all the pages, that takes care of.

Web Accessibility – a myth

The availability of the Web is not another idea. The Web Accessibility Initiative was launched in 1997, but 20 years later, it is a largely ignored and unfulfilled part of the advancement of the Web. There are deep-seated confusions about availability that prevent individuals from trying to join incorporate accessibility in their sites. Let us take a tour of it. Ask any queries you have. We will revert back you asap.

Are layout tables bad?

If <role="presentation> is added layout tables does not do any harm. It’s good to use <table> mark-up for layout purpose, if use case is just on a particular page; but to control layout on cross pages, use of CSS is recommended.