In browse mode nvda is reading whole information present in the section - accessibility

.ProfileSubHeadTitleLinkStyle-181 {
display: flex;
margin-top: 36px;
margin-right: 20px;
margin-bottom: 24px;
justify-content: space-between;
}
.ProfileSubHeadTitleStyle-182 {
font-size: 18px;
font-weight: 600;
margin: 0px 20px 0px 0px;
padding: 0px;
}
.ProfileEditLinkStyle-283 {
font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif;
-webkit-font-smoothing: antialiased;
font-size: inherit;
font-weight: inherit;
color: rgb(92, 27, 134);
outline: none;
text-decoration: none;
background: none transparent;
border-top: none;
border-right: none;
border-left: none;
border-image: initial;
cursor: pointer;
display: flex;
margin: 0px 10px;
overflow: inherit;
padding: 0px;
text-align: left;
text-overflow: inherit;
border-bottom: 1px solid transparent;
align-items: center;
user-select: text;
}
.profileNameColStyle-282 {
margin: 20px 0px;
display: flex;
flex-flow: row wrap;
}
.flex1-185 {
margin-right: 30px;
margin-bottom: 15px;
}
<div id="profileNameWrapper">
<div>
<div class="ProfileSubHeadTitleLinkStyle-181">
<h3 class="ProfileSubHeadTitleStyle-182">Name</h3>
<button type="button" data-testid="edit-link-test-id" class="ms-Link ProfileEditLinkStyle-283">
<i data-icon-name="Edit" aria-hidden="true" class="root-286"></i>
Edit
</button>
</div>
<div>
<div class="profileNameColStyle-282" aria-hidden="true">
<div class="flex1-185">
<div class="ProfileSubContentTitleStyle-184">First name</div>
<div class="ProfileContentStyle-179">Sarfraj</div>
</div>
<div class="flex1-185">
<div class="ProfileSubContentTitleStyle-184" data-testid="middle-name-test-id">Middle name</div>
<div class="ProfileContentStyle-179">L</div>
</div>
<div class="flex1-185">
<div class="ProfileSubContentTitleStyle-184">Last name</div>
<div class="ProfileContentStyle-179">P</div>
</div>
<div class="flex1-185">
<div class="ProfileSubContentTitleStyle-184">Preferred first name</div>
<div class="ProfileContentStyle-179">P</div>
</div>
</div>
</div>
</div>
</div>
In browse mode, nvda and jaws should read each section after reading the name and edit button, but it's reading the whole container after the edit button. It should read each section one by one.
What would be the way to do that? Also, any documentation on why in browse mode, the focus goes to some items and sometimes it goes directly to their child elements?

You didn't mention how you're navigating but I will assume you're using the up/down arrow keys to walk the DOM.
And what do you mean by "section"? You don't have a literal <section> element and you don't have anything with role="region" (which is the default role for a <section> if that section has an aria-label, which yours doesn't).
I did notice that you have aria-hidden="true" on your <div> for the lower "section" and that will completely hide all child elements in that <div>.
<div class="profileNameColStyle-282" aria-hidden="true">

Related

Side by side subitem, grand child of flex container sticks out of area

My goal is to do a "row" with three columns. The layout works but when I add a specific class (which doesn't have width) it makes the grandchild input stick out.
My html is:
<div class="product-box" >
<div class="flex-container">
<div class="flex-child">
<input class="qty-box">
</div>
<div class="flex-child">
<button type="button" class="qty-add-sub">
<span class="qty-add">+</span>
</button>
</div>
<div class="flex-child">
<button type="button" class="qty-add-sub">
<span class="qty-minus">-</span>
</button>
</div>
</div>
</div>
My css is:
.flex-container {
display: flex;
max-width: 180px;
}
.flex-child {
flex: 1;
}
.product-box {
display: flex;
flex-direction: column;
font-weight: 300;
width: 200px;
padding: 10px;
text-align: center;
background-color: #c5c5c5;
border-radius: 5px;
}
input.qty-box {
border: 2px solid rgb(179, 179, 179);
font-family: Arial, Helvetica, sans-serif;
border-radius: 5px;
font-weight: bold;
font-size: 22px;
height: 55px;
}
.qty-add {
color:rgb(84, 0, 0);
font-size: 30px;
}
.qty-minus {
color:rgb(84, 0, 0);
font-size: 30px;
}
The display appears like so:
Sandbox URL:
https://codesandbox.io/embed/html-css-forked-eu1680?fontsize=14&hidenavigation=1&theme=dark
So I've had a good look at this and there's a few thing to note:
Setting the width of the input box to 100% works but there's still an element that pokes out of the end, this is due to the box-sizing being content-box and not border-box. I've set the flex box so that the first child tries to grow and the buttons don't. I've also set a width for your buttons too. Example below
* {
box-sizing: border-box;
}
.flex-container {
display: flex;
gap:0.125rem;
}
.flex-child {
flex-grow: 0;
}
.flex-child:first-child {
flex-grow: 1;
}
.product-box {
font-weight: 300;
width: 200px;
padding: 10px;
background-color: #c5c5c5;
border-radius: 5px;
}
input.qty-box {
border: 2px solid rgb(179, 179, 179);
font-family: Arial, Helvetica, sans-serif;
border-radius: 5px;
font-weight: bold;
font-size: 22px;
height: 55px;
width: 100%;
}
.qty-add {
color: rgb(84, 0, 0);
font-size: 30px;
}
.qty-minus {
color: rgb(84, 0, 0);
font-size: 30px;
}
.qty-add-sub {
width: 2rem;
}
<div class="product-box">
<div class="flex-container">
<div class="flex-child">
<input class="qty-box" />
</div>
<div class="flex-child">
<button type="button" class="qty-add-sub">
<span class="qty-add">+</span>
</button>
</div>
<div class="flex-child">
<button type="button" class="qty-add-sub">
<span class="qty-minus">-</span>
</button>
</div>
</div>
</div>
The input default size is 20 characters, and there is not
enough space for that
input w3 schools
If you want to resize the input to less characters you can use
<input size="number">

How to align bootstrap colums when setting margin of container to 0?

I have a question about aligning two bootstrap divs beside each other horizontally, whereas the left image "in one div" should have no margin to the left and the right text "in the other div" should be centered besides the image to the left. The right div may have some margin to the right
For some reason when I set my two divs beside each other and set margin to 0, I receive this result here as on the pic.
As can be seen, the div overlaps the other, why does that happen? What would I need to do in order to make it properly aligning to the right in the center?
I tried using col-md-offset-1 but it only displays it below the picture. What can I do best to keep it properly aligned to the right?
This is my html / css:
.row-provider-signup {
margin-top:6em;
margin-bottom:4em;
text-align:center;
}
.container-provider-signup > [class*="container"] {
padding-left: 0 !important;
padding-right: 0 !important;
margin-left:0;
margin-right:0;
}
.provider-signup-header-text {
color: #212121;
font-family: Raleway;
font-size: 62px;
font-weight: 400;
line-height: 72px;
margin-bottom:1.5em;
}
.provider-signup-body-text {
color: #616161;
font-family: Raleway;
font-size: 16px;
font-weight: 400;
line-height: 25px;
letter-spacing: 0.2px;
text-align:center;
margin-bottom:6em;
}
.provider-signup-button {
width: 150px;
height: 45px;
border-radius: 4px;
background-color: #4a90e2;
}
.provider-signup-button-text {
color: #ffffff;
font-family: Raleway;
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 2.5px;
}
<div class="container-provider-signup">
<div class="container">
<div class="row row-provider-signup">
<div class="col-md-6">
<img src="{{route('cacheImage', ['newDesign', 'panorama-signup.png']) }}"/>
</div>
<div class="col-md-6">
<p class="provider-signup-header-text">Test Header</p>
<p class="provider-signup-body-text">
Test Text <br/><br/>
Test Text <br/><br/>
Test Text <br/>
</p>
<button class="btn provider-signup-button"><span class="provider-signup-button-text">SIGN UP</span></button>
</div>
</div>
</div>
</div>

Css fixed height content inner beetwen footer and header

First look at the picture:
Like you see my center of page i mean this content with form on small resolution get over the navbar. This content is centered verticaly and horizontal by flex.
here is code and what i try:
html`
<nav>
<div class='row header-inner'>
<div class='col-md-10 col-lg-10 col-lg-offset-2 col-md-offset-2 col-sm-offset-1 col-sm-11 col-xs-12'>
<div class='row logo-inner'>
<img src="assets\static\Logo.png">
</div>
<div class='row menu-inner'>
<a class='menu-item' routerLink="/aboutUs" routerLinkActive="active">about us</a>
<a class='menu-item' routerLink="/skiCams" routerLinkActive="active">skicams</a>
<a class='menu-item' routerLink="/contactUs" routerLinkActive="active">contact</a>
</div>
</div>
</div>
</nav>
<div class='row content-inner'>
<div class='col-md-8 col-lg-8 col-lg-offset-2 col-md-offset-2 col-sm-offset-1 col-sm-10 col-xs-12'>
<router-outlet></router-outlet>
</div>
</div>
<footer>
<div class='row center-block'>
<div class='col-md-offset-5 col-lg-offset-5 col-md-2 col-lg-2 col-sm-offset-5 col-sm-2 col-xs-offset-3 col-xs-6 footer-content'>
Powered by PGS
</div>
</div>
</footer>`
and css
footer {
border-top: 1px solid #40637e;
background-color: #282828;
position: fixed;
left: 0;
bottom: 0;
height: 110px;
width: 100%;
overflow:hidden;
}
.footer-content{
color :#959595;
border-top :1px solid #959595;
text-align: center;
margin-top:30px;
padding: 20px;
font-size: 10px;
}
.logo-inner{
margin: 35px 0px 35px 0px;
}
.header-inner{
border-bottom:1px solid #dbdbdb;
padding-bottom: 13px;
margin: 0;
}
.menu-inner{
margin:0px;
}
.menu-item{
margin-right: 40px;
padding-bottom: 15px;
font-size: 14px;
text-transform: uppercase;
font-weight: bold;
color:#545454;
}
.active{
border-bottom:1px solid #ef6716;
color: #ef6716;
}
a:hover, a:focus {
color: #ef6716;
text-decoration: none;
}
.content-inner{
background-color:#f8f8f8;
margin: 0;
/*margin-bottom:200px;*/
}
#media(max-width : 768px){
.menu-item{
margin-right:30px;
padding-bottom: 14px;
font-size: 14px;
text-transform: uppercase;
}
.menu-inner{
margin:0px;
text-align: center;
}
.logo-inner{
margin: 35px 0px 35px 0px;
text-align: center;
}
}
could you help my do something like this when the height is smaller the page start scrolling ?
It looks like you're missing your flexbox code in your question. Without seeing it all, I'd suggest trying to remove flexbox in the smaller breakpoints and just using display: block; and making sure your <div class='row content-inner'> element is statically positioned (position: static;).

Extend underline by hovering button in css

I have 3 services in a row, If you hover over each services title text, the underline gets longer under the corresponding title, What I want to do is make it so when you hover over the button or the title text, the line gets longer.
I would prefer a css solution if possible, I have tried the + (maybe wrongly) but it does not seem to be working for me
<div class="row ">
<div class="col-xl-3 col-lg-4 ">
<em>01</em>
<h2>Web Design</h2>
<p>Acro Design create research led websites that make you and your business money</p>
<button>Explore Web Design</button>
</div>
<div class="col-xl-3 col-lg-4 ">
<em>02</em>
<a href="">
<h2>Branding </h2>
</a>
<p>To make a business money though design you need to firstly understand how a user uses design.</p><button>Explore Branding</button></div>
<div class="col-xl-3 col-lg-4 "><em>03</em> <h2>Print Design</h2>
<p>Print design is about creating assets for your business, to increase your overall industry presence.</p><button class="but">Explore Print Design</button></div>
</div>
button {
margin: 1rem 0 7rem 0;
padding: 1.3rem;
font-size: 1.2rem;
font-style: italic;
background-color: transparent;
border: #000 solid 0.2rem;
color: #000
}
p {
padding: 1rem 1rem 0rem 0;
}
em {
display: block
}
h2 {
text-decoration: none;
display: inline-block;
border-bottom: 3px solid black;
white-space: nowrap;
width: 6.429rem;
transition: 0.5s ease;
height: 5.357rem;
color: #000;
}
h2:hover {
border-bottom: 3px solid black;
width: 200px;
text-decoration: none;
}
}
http://codepen.io/saltedm8/pen/oxVNjO
Thank you
REGARDS
Here is a pen with solution : http://codepen.io/anon/pen/EKMxor. This includes javascript ( JQuery ) but there is no way to do it without css only.. You could say this is 50% hardware accelerated.
HTML:
<div class="row ">
<div class="col-xl-3 col-lg-4 ">
<em>01</em>
<h2>Web Design</h2>
<p>Acro Design create research led websites that make you and your business money</p>
<button>Explore Web Design</button>
</div>
<div class="col-xl-3 col-lg-4 ">
<em>02</em>
<a href="">
<h2>Branding </h2>
</a>
<p>To make a business money though design you need to firstly understand how a user uses design.</p><button>Explore Branding</button></div>
<div class="col-xl-3 col-lg-4 "><em>03</em> <h2>Print Design</h2>
<p>Print design is about creating assets for your business, to increase your overall industry presence.</p><button class="but">Explore Print Design</button></div>
</div>
</div>
</section>
CSS:
p {
padding: 1rem 1rem 0rem 0;
}
button {
margin: 1rem 0 7rem 0;
padding: 1.3rem;
font-size: 1.2rem;
font-style: italic;
background-color: transparent;
border: #000 solid 0.2rem;
color: #000
}
em {
display: block
}
h2 {
text-decoration: none;
display: inline-block;
border-bottom: 3px solid black;
white-space: nowrap;
width: 6.429rem;
transition: 0.5s ease;
height: 5.357rem;
color: #000;
}
h2.active{
border-bottom: 3px solid black;
width: 200px;
text-decoration: none;
}
JS :
$("h2").mouseover(function() {
$(this).addClass("active");
});
$("h2").mouseout(function() {
$(this).removeClass("active");
});
$("button").mouseover(function(){
$(this).parent().children("a").children("h2").addClass("active");
});
$("button").mouseout(function(){
$(this).parent().children("a").children("h2").removeClass("active");
});

CSS Script Compatibility

I need to make my CSS Script Compatible with Mozilla and Google Chrome and also I need it to be full screen on a laptop and a desktop computer. Right now it is all over the place.Saw a few tips but I have no idea how to implement it. Hope someone can guide me along.
CSS SCRIPT
<style>
#logo{
background-image:url(logo.png);
width:180px;
height:150px;
}
#header{
background-color: rgb(37, 37, 48);
box-sizing: border-box;
color: rgb(49, 49, 49);
display: block;
float: left;
font-family: 'Source Sans Pro', sans-serif;
font-size: 16px;
height:auto;
line-height: 25.3968px;
min-height: 1px;
font-weight:100;
width:110%;
position:fixed;
margin-left:-1%;
margin-top:-1%;
z-index:10000;
}
button{
font-size: 12px;
line-height: 1;
display: inline-block;
text-transform: uppercase;
font-weight: bolder;
padding: 16px 18px;
background-color: #90ef7f;
color: #313131;
border: 0;
border-radius: 2px;
margin: 1px;
text-align: center;
}
button:hover{
background-color: #90ef7f;
color: #eeeaea;
}
#header h1,.demo h3{text-transform:none}
#header{border-bottom:2px inset #f6f6f6}
#header h1{text-align:left;color:#fff;margin:0 0 0 0}
h1{margin-bottom:1em}
a.btn.btn-theme{width:13%;color:#eeeaea;padding:5px;background- color:#34343e;border:1px solid #34343e;border-bottom:0;border-radius:0;font-weight:400;margin:0 10px 0 0}
a.btn.btn-theme:hover{color:#90ef7f}
a.btn.btn-theme.disabled{background-color:#f6f6f6;color:#313131;opacity:1}
.btn-group.theme{width:100%; font-size:16px;text-transform: uppercase;margin-top:-4%;}
#div {
width:220px;
height:100px;
text-transform:uppercase;
font-size:16px;
font-family:haveltica;
text-align:center;
font-weight:bold;
color:lightblue;
margin-top:10px;
}
h1{
box-sizing: border-box;
color: rgb(255, 255, 255);
display: block;
font-family: 'Source Sans Pro', sans-serif;
font-size: 36px;
font-style: normal;
font-variant: normal;
font-weight: 100;
height: 35px;
line-height: 44px;
margin-bottom: 20px;
margin-right: 0px;
margin-top: 20px;
text-align: left;
text-transform: none;
width: 940px;
zoom: 1;
}
HTML Codes
<div id="header" class="hidden-xs col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div id ="logo"></div>
<div class="container" style = "margin-top:-10%;padding:2%"><h1>REPORT MODULE</h1>
<div id = "div" href="javascrit:void(0);">Welcome <?php echo $_SESSION['DIV_USERNAME']; echo '<br>';?>
</div>
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="btn-group theme">
<?php
//creating menu
foreach((array)$profile_menu as $key=>$val)
{ ?>
<a class="btn btn-theme" href="<?php echo $key ?>"><?php echo $val ?></a>
<?php } ?>
$profile_menu = array(
'a.php'=>'a',
'b.php'=>'b',
'c.php'=>'c',
'd.php'=>'d',
'e.php'=>'e',
'f.php'=>'f',
'logout.php'=>'Logout'
);
?>
</div>
</div>
</div>
</div>
</div>
Not entirely sure what you are trying to do here, as you are using CSS name references that you have not included.
You CSS looks OK to me, but somewhat messy. I would suggest using the DOM explorer to look at each element that is not display correctly and make adjustments to its CSS reference block.

Resources