No patch yet, only a screenshot (FF/Mac).

CommentFileSizeAuthor
#65 vertical-tabs-cleanup-5.patch4.28 KBJacine
#62 vertical-tabs-cleanup-5.patch4.28 KBJacine
#59 vertical-tabs-cleanup-4.patch4.28 KBJacine
#58 vertical-tabs-cleanup-3.pdf455.35 KBJacine
#53 vertical-tabs-cleanup-3.patch4.28 KBJacine
#50 ie-tester.png182.52 KBJacine
#46 ie6-display-block-focus-outline.png193.1 KBJacine
#46 ie6-display-block-dev-toolbar.png216.1 KBJacine
#46 ie6-setting-display-inline-manually.png219.08 KBJacine
#46 ie6-setting-display-inline-block-manually.png224.34 KBJacine
#45 vertical-tabs-rewrite.patch4.99 KBJeff Burnz
#42 vertical-tabs-new.patch7.44 KBreglogge
#42 vertical-tabs-expanded.png192.58 KBreglogge
#41 vertical-tabs-cleanup-2.patch4.63 KBJacine
#41 vertical-tabs-chrome.pdf244.2 KBJacine
#41 vertical-tabs-IE7.pdf183.34 KBJacine
#41 vertical-tabs-IE6.pdf191.25 KBJacine
#36 vertical-tabs.patch7.37 KBreglogge
#28 vertical-tabs-cleanup.patch4.75 KBJacine
#25 vertical-tabs-rtl-5.patch4.75 KBreglogge
#25 input-overlap-ff-mac.png53.48 KBreglogge
#25 input-overlap-opera-win.png55.29 KBreglogge
#23 vertical-tabs-rtl.css_.txt486 bytesreglogge
#23 vertical-tabs-rtl-4.patch5.16 KBreglogge
#20 ie7-vt.png85.28 KBJeff Burnz
#18 fc-rtl.png76 bytesreglogge
#17 vertical-tabs-rtl-all-3.patch4.37 KBreglogge
#15 FF-Bartik-before.png57.12 KBreglogge
#15 FF-Bartik-after.png70.63 KBreglogge
#15 FF-Seven-before.png47.8 KBreglogge
#15 FF-Seven-after.png52.86 KBreglogge
#15 IE6-Bartik-before.png15.37 KBreglogge
#15 IE6-Bartik-after.png38.51 KBreglogge
#15 IE6-Seven-before.png37.48 KBreglogge
#15 IE6-Seven-after.png34.94 KBreglogge
#15 IE7-Bartik-before.png29.55 KBreglogge
#15 IE7-Bartik-after.png50.4 KBreglogge
#15 IE7-Seven-before.png40.6 KBreglogge
#15 IE7-Seven-after.png40.2 KBreglogge
#15 IE8-Bartik-before.png41.34 KBreglogge
#15 IE8-Bartik-after.png60.64 KBreglogge
#15 IE8-Seven-before.png40.81 KBreglogge
#15 IE8-Seven-after.png44.56 KBreglogge
#12 vertical-tabs-rtl-all-2.patch4.29 KBreglogge
#10 vertical-tabs-rtl-all-1.patch4.24 KBreglogge
#9 vertical-tabs-rtl-all.patch2.67 KBreglogge
#8 vertical-tabs-rtl-garland-seven-1.patch2.68 KBreglogge
#4 vertical-tabs-rtl-garland-seven.patch2.41 KBreglogge
#4 vertical-tabs-rtl.css_.txt543 bytesreglogge
#4 fc-rtl.png932 bytesreglogge
#3 stark-before.png112.36 KBreglogge
#3 stark-after.png113.81 KBreglogge
#3 vertical-tabs-rtl.patch951 bytesreglogge
node-add-rtl.png45.12 KBreglogge
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

reglogge’s picture

Title: Vertical columns in Bartik broken for RTL languages » Vertical tabs in Bartik broken for RTL languages

renaming...

Jeff Burnz’s picture

Title: Vertical tabs in Bartik broken for RTL languages » Vertical tabs broken for RTL languages
Component: Bartik theme » markup

Just took a took a quick look - seems the problem is in vertical-tabs-rtl.css, the selectors don't have enough specifity. Changing component.

reglogge’s picture

Status: Active » Needs review
FileSize
951 bytes
113.81 KB
112.36 KB

After looking around, I find that al themes are affected by this to differing degrees and will have their stylesheets to be adjusted. D'Oh.

For starters, let's get this right with just Stark. This uses only /misc/vertical-tabs.css and /misc/vertical-tabs-rtl.css. From there we can build forward.

Patch attached that fixes Stark. Screenshots too.

reglogge’s picture

This patch fixes Garland and Seven.

Additional files needed to be committed with this are:
- /themes/seven/vertical-tabs-rtl.css (attached with .txt extension - needs to be renamed)
- /themes/seven/images/fc-rtl.png (attached)

Bartik seems to be working mostly too with this. Only a minor issue with overly wide input elements remains.

EDIT: When testing, be aware that you need to clear cache for the changes in themes/seven/template.php to take effect.

ksenzee’s picture

Priority: Major » Critical

When you can't create content, it's a critical bug. :(

Jacine’s picture

Oh boy... Good catch.

I haven't reviewed the CSS in detail yet, but this is making me nuts right now.

+++ themes/seven/template.php	28 Sep 2010 19:17:55 -0000
@@ -97,6 +97,9 @@ function seven_css_alter(&$css) {
   if (isset($css['misc/vertical-tabs.css'])) {
     $css['misc/vertical-tabs.css']['data'] = drupal_get_path('theme', 'seven') . '/vertical-tabs.css';
   }
+  if (isset($css['misc/vertical-tabs-rtl.css'])) {
+    $css['misc/vertical-tabs-rtl.css']['data'] = drupal_get_path('theme', 'seven') . '/vertical-tabs-rtl.css';

The fact that this is required in the first place just goes to show how broken CSS file handling in themes is right now. Just one more reason this #575298: Provide non-PHP way to reliably override CSS should go in now.

sun’s picture

Status: Needs review » Postponed

This is not the right way to do it. We need to wait for #575298: Provide non-PHP way to reliably override CSS

reglogge’s picture

Status: Postponed » Needs review
FileSize
2.68 KB

Removed the dependency on #575298: Provide non-PHP way to reliably override CSS by adding the required styles for Seven into its already existing style-rtl.css and cleaned up the code some more.

It also fixes the minor issue with overly wide input elements in Bartik.

All core themes are covered now, Stark, Seven, Bartik and Garland.

Tested in FF (Win/Mac), Opera (Win/Mac), Chrome (Mac) and IE7.

This patch still needs the image-file from #4 also but not the additional stylesheet.

reglogge’s picture

Issue tags: +low-hanging fruit
FileSize
2.67 KB

Cleaning out some more duplicate styles.

reglogge’s picture

...and finally beating IE6 into utter submission.

EDIT: This patch still needs the image-file from #4 but not the additional stylesheet.

aspilicious’s picture

screenshots please for all browsers/all themes (please? :p)

reglogge’s picture

Dang! IE6 misbehaves with Stark, necessitating every non-core theme to implement a width for div.vertical-tabs .form-item. Otherwise a textarea in a vertical tabs pane would have wrapped below the tabs. This behavior is not limited to RTL, BTW.

This patch fixes this by setting the width of div.vertical-tabs .form-item to 95% generally in /misc/vertical-tabs.css.

!!! This patch still needs the image-file from #4 but not the additional stylesheet. !!!

reglogge’s picture

@aspilicious: You are aware that you are asking for round about 40 screenshots here? And that’s not even with Linux boxes?

Testing this is quite simple: Set English to RTL in admin/config/regional/language and look at /node/add/article

I will provide some screens of the worst offenders though...

Jeff Burnz’s picture

Maybe a "this is how it should look" screen-shot is good, so testers can compare, so they know what they are supposed to be looking at.

reglogge’s picture

Screens for IE6, IE7, IE8 and Firefox for Seven and Bartik attached.

EDIT: Chrome, Safari and Opera look basically the same as FF. Garland and Stark look fine in my testing with the patch, too.

aspilicious’s picture

IE7 bartik after has a border problem with the active tab

reglogge’s picture

Gone now... this wasn't introduced by the patch, BTW.

!!! This patch still needs the image-file from #4 but not the additional stylesheet. !!!

reglogge’s picture

FileSize
76 bytes

Newly smushed background image fc-rtl.png for placing into /themes/seven/images attached. Just 76 bytes.

Replaces the image from #4.

Jeff Burnz’s picture

FileSize
85.28 KB
+++ themes/seven/style-rtl.css	29 Sep 2010 12:07:33 -0000
@@ -18,3 +18,15 @@ ul,
+/**
+ * Vertical tabs.
+ */
+div.vertical-tabs {
+  background: #fff url(images/fc-rtl.png) repeat-y top right;
+}
+div.vertical-tabs div.vertical-tabs-panes {
+  margin-left: 0;
+  margin-right: 265px;
+  padding: 10px 0 10px 15px;
+}

Not so sure about this, seems a bit inconsistent with how we override the standard stylesheet, while sun doesnt like the hook_css_alter stuff for Seven I would prefer it since its consistent - we should fix this now with the current tools, and worry about the info file stuff later should that make it in.

Attached a screenshot in IE7, see there is no padding/margin between the tip and the vertical tabs, I had this problem before, could be a hasLayout issue in RTL.

Powered by Dreditor.

jessebeach’s picture

Jeff, I'm not seeing the spacing issue you mention in #20

IE7 Mode in IE8 on Windows 7: http://skitch.com/jesse.beach/d3ggc/windows-7-running

IE7 on XP: http://skitch.com/jesse.beach/d3geq/windows-xp-sp2-ie7-native-running

Overall, the patch works. I'd rather not introduce selectors like

div.vertical-tabs ul.vertical-tabs-list {
 float: right;
 margin-right: 0;
 right: 0;
}

where div.vertical-tabs and ul.vertical-tabs-list declare unnecessary degrees of specificity at the cost of efficiency. .vertical-tabs is sufficient unless we're explicitly contrasting div.vertical-tabs with something like ul.vertical-tabs. Same for .vertical-tabs-list.

Jeff Burnz’s picture

The spacing issue in #20 is a pita, I know it doesn't always occur, I found this also when we were working on the vertical tabs make-over, sometimes it occurred, sometimes not, I couldn't put my finger on it but I am pretty sure its a hasLayout bug, but as to why, well...

If we step back to the shorter more efficient selectors (yes I agree here) does it still work OK, because one of the issues I found earlier was the specification not being sufficient enough - we don't want other CSS messing around with VT, say a themes styling for list items.

reglogge’s picture

@Jesse in #21: On the specificity of selectors, I just used the convention from /misc/vertical-tabs-rtl.css (which we are overriding) on the assumption that the overly specific selectors were written this way for a reason.

@Jeff in #20: I reverted to the solution with the additional stylesheet for Seven, activated through template.php. Since #575298: Provide non-PHP way to reliably override CSS has been RTBC since Sept 9, and Dries has voiced his opposition, I think it's best to just assume it won't get in (sadly...). Should it land, we can always reopen here with a followup.

I also added height: 1% to div.vertical-tabs in Seven's vertical-tabs.css for good measure with gives it hasLayout in IE. Please test if this helps on your IE7, since I also cannot see the bug you describe.

- This patch needs the image-file from #18 put into /themes/seven/images
- This patch needs the attached new stylesheet vertical-tabs-rtl.css put into themes/seven/

EDIT: Fixed some typos in this comment.

Jeff Burnz’s picture

Status: Needs review » Needs work
+++ themes/bartik/css/style.css	30 Sep 2010 18:56:30 -0000
@@ -1153,6 +1153,15 @@ div.password-suggestions {
+div.vertical-tabs ul.vertical-tabs-list li.selected a {
+  height: auto;
+}
+div.vertical-tabs .form-item {
+  width: 408px;
+}
+div.vertical-tabs input.form-text {
+  width: 408px;
+}

This will break if two sidebars are active - I'd prefer to see this tackled in another Bartik specific patch that fixes this whole issue of form items overflowing fieldsets.

+++ themes/seven/ie6.css	30 Sep 2010 18:56:30 -0000
@@ -18,3 +18,6 @@ ul.links li a,
+div.vertical-tabs .form-item {
+  width: 36em;
+}

again, this hard wired width on form items irks me

+++ themes/seven/vertical-tabs.css	30 Sep 2010 18:56:30 -0000
@@ -5,6 +5,7 @@
+  height: 1%;

seems like something for ie.css

Powered by Dreditor.

reglogge’s picture

Status: Needs work » Needs review
FileSize
55.29 KB
53.48 KB
4.75 KB

@jeff:

1:

This will break if two sidebars are active - I'd prefer to see this tackled in another Bartik specific patch that fixes this whole issue of form items overflowing fieldsets.

Bartik as an admin theme has plenty of issues when using two sidebars. See for example /admin/structure/block or imagine a permissions page (shudders...). And we need the fixed width for these input-elements for Opera/Win and FF/Mac in px values because otherwise they run out of div.vertical-tabs (Screens attached). However, we could add this to account for Bartik with two sidebars:

.two-sidebars div.vertical-tabs .form-item {
  width: 168px;
}
.two-sidebars div.vertical-tabs input.form-text {
  width: 168px;
}

Vertical tabs look ridiculous narrow with Bartik and two sidebars, but at least they are usable this way.

2:

again, this hard wired width on form items irks me

This is for IE6 only. Really, should we care? I don't see a better way to achieve this in IE6.

3:

seems like something for ie.css

You are right.

I attached a new patch with the changes from 1 and 3.

And the usual disclaimer:
- This patch needs the image-file from #18 put into /themes/seven/images
- This patch needs the new stylesheet vertical-tabs-rtl.css from #23 put into themes/seven/

Note also: The changes to themes/bartik/css/ie6.css from the previous patch aren't needed anymore since #660614: Remove #block-system-main dependency, fix font sizes, remove crufty CSS went in this morning. Yay!

Bojhan’s picture

Issue tags: +markup

Jacine review maybe?

Jacine’s picture

Status: Needs review » Needs work
Issue tags: -markup, -low-hanging fruit

I started reviewing this yesterday, but I'm not done yet. There are quite a few problems here, and this is not only broken in RTL. When I am finished I will repot back.

Also removing a bunch of irrelevant/unnecessary tags.

Jacine’s picture

Title: Vertical tabs broken for RTL languages » Vertical tabs broken
Status: Needs work » Needs review
FileSize
4.75 KB

Ok, well this issue has uncovered a bunch of issues in IE6, as well as the issue with textareas and input[type=text] that have been long plaguing us inside vertical tabs. There were also a few issues introduced by recent accessibility improvements that were not exposed (at least I did not notice them) until trying to address the issues in this patch. We will need the accessibility team to test this and make sure all the tabbing they added still works. I think it's fine, but better safe than sorry.

After a couple of hours of trying to debug this, I'm done with Stark (the base styles are now good). This patch is not finished because unfortunately Seven takes it upon itself to implement its own version of vertical tabs. From what I am seeing, this is not needed at all. The design is not different enough, by any means, that we need to start from scratch and maintain all this extra code. I think that it's fine to provide a vertical-tabs.css within the Seven theme, if the maintainers want that, but that this should not override the core file entirely, and the overrides should not cause the need for a vertical-tabs-rtl.css It's too much maintenance, and again, not necessary.

I'm the against hard-coded pixel widths for IE6 introduced in the previous patch here. It's not necessary. I also think that we should attempt to provide a core fix for the issue with certain form elements overflowing the vertical tabs content area. It makes no sense to make every theme deal with this, as it occurs in most browsers. The following lines in vertical-tabs.css do a very nice job at resolving this, and it's the same way we fixed up resizable textareas:

/**
 * Prevent text inputs from overflowing when container is too narrow. "width" is
 * applied to override hardcoded cols or size attributes and used in conjunction
 * with "box-sizing" to prevent box model issues from occuring in most browsers.
*/
div.vertical-tabs .form-type-textfield input {
  width: 100%;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
* html div.vertical-tabs .form-type-textfield,
* html div.vertical-tabs .form-textarea-wrapper {
  width: 95%; /* IE6 */
}

I am posting this now, because both Stark and Bartik are ready for testing, and I many not have enough time to continue on Seven today.

Thoughts?

Jeff Burnz’s picture

Status: Needs review » Needs work

If the CSS for vertical tabs in Seven can be merged into the main stylesheet and the design not changed that would be fine. A lot of time was spent refining VT in Seven, its is quite different in the details and importantly does not have that ugly gap below the tab list when the pane is longer than the tabs, which visually isolates the submit buttons.

Can you clarify what these issues are in IE6 that we are trying to fix? I have reviewed the patch but would like to discuss the issues we're trying to address first, as there are some new issues with this patch that I do not get with the original CSS (IE6 & 7).

If not already this will fail, there was an update the system.base.css just recently.

Jacine’s picture

Well, I'm not familiar enough with Seven, and that's not my queue, so I wont make that call. I took another look at it, and it appears it will need to have an RTL file after all since it decides to apply a different/pixel width to the tabs.

I think that should be handled in Seven's queue, not here, given the current state (Bartik and Garland make use of core code, and Seven does not).

The way this code (core Drupal CSS) needs to be tested is with Stark first. I don't think that happened in the case of vertical tabs. It's totally broken in IE6 in both LTR and RTL versions. The issues are pretty obvious, just enabling a theme and editing a node, and clicking through the tabs, but I will provide detailed reasons for the changes. This just ended up taking hours to write/fully test, and I don't have any more time today. Not sure what update in system.base.css you are referring to, nor why you think this will fail without trying it, but I will provide more details as soon as I get a chance.

EDIT: It's obvious in Stark with when both sidebars filled with blocks.

Jeff Burnz’s picture

Status: Needs work » Needs review

Yea, I applied it, originally it failed with the hunk in system base, which is kind of weird because now it applies just fine!

OK, so my IE6 was acting real weird when I first tested this and now I have those issues sorted out (thank goodness for virtual machines):

1. Awesome IE6 fixes here, I bask in your excellence.

2. The display block property for tab anchors is not working in IE7. We ran into this same problem with Seven, after much hacking I found the margin: 0 -100% -1px 0; line in the original CSS fixes this. Its a very rare hasLayout bug afaict.

3. I see some odd issue with outlines in Bartik, will keep digging, however this is looking very good indeed.

Everett Zufelt’s picture

@jacine

Can you, or someone else, please provide a summary of the issue so that the accessibility folk know what they're looking for?

Generally speaking the following is required.

1. Focused, selected, and non-selected tabs must be visually distinguishable on all themes.

2. There was some weird keyboard stuff added that I wasn't a fan of, but essentially pressing enter on a tab should take you to the first field in the sub-form and pressing enter there (except for a multiline text field) should take you back to the selected tab.

Jeff Burnz’s picture

@32 - yes thats basically it. Visually they look good - core does the focus styles with outline and underlining the link, Seven uses background color on the tab. Non-selected tabs are coloured gray, while the selected tab is white - the same color as the panes (to visually connect an active tab to its pane).

For me the automagic first selected field works, as does pressing enter again to go back to the tab. I can see small issue with Seven in this regard because it does not highlight the active tab on focus/hover, we should look at that in the Seven queue.

From my limited testing in Firefox and IE8 the behavior appears to hold up and the styling supports the behavior (for core/Stark). For me its easier to use these tabs with the keyboard than a mouse, it seems quite intuitive.

Everett Zufelt’s picture

@Jeff

Thanks for the review. Do you know if there is currently an open Seven VT issue to which it would be appropriate to add the bug about active highlighting, or should I open a new issue against Seven?

Jeff Burnz’s picture

There is no open issue, but an old one you could re-open that dealt with the redesign of vertical tabs in Seven - better carry on that discussion in Seven queue and not go off-topic to much in this critical.

reglogge’s picture

FileSize
7.37 KB

Just some quick notes from further digging ino this:

@jacine: Terrific sleuthing! Your method of limiting the width of input elements is far superior to my earlier patches and should form the basis of the solution here.

On Seven: This should and must be handled here too, because Seven's different handling of vertical tabs with the faux columns technique stems from the fact that in the basic styling of vertical tabs as provided by the stylesheets in /misc there will always be a rather ugly effect when the height of a tabs-pane exceeds the height of the tabs on the left side. This just doesn't happen very often, so it wasn't noticed for a long time (screenshot here). Again, this happens for every theme.

The attached patch does several things:
1. incorporates Jacines new way of limiting the width of input elements.
2. rolls back the faux columns technique in Seven by simply deactivation the loading of a Seven's vertical-tabs.css (this file can be removed).
3. replaces the faux columns technique in Seven with a different way of ensuring that the space below the tabs remains in #eee even when a pane is higher. This now works for all themes.

3 is achieved by:
- setting the background-color #eee to the entire div.vertical-tabs
- setting the background-color #fff to div.vertical-tabs-panes and adding a clearing empty div in misc/vertical-tabs.js there so that it always gets the same height as div.vertical-tabs. This could also be achieved without markup by just adding .clearfix to div.vertical-tabs-panes, but this failed in IE6 & 7.

Status of this patch is hat it works on all points for IE6, IE7, IE8, IE9, FF, Opera, Chrome and Safari. Tested in themes Stark, Seven, Bartik. It also works in RTL languages.

Jeff Burnz’s picture

Status: Needs review » Needs work

Glad to be rid of the Seven css_alter, however we've lost all the design style for Seven - the nice spacing, some of the colors etc, lets bring those back in.

Jacine’s picture

Assigned: Unassigned » Jacine

@reglogge your last patch reverts many of the IE fixes I spent hours on.

Implementing faux columns to achieve the background color is not only a design change, but it causes other potential problems. Sure, maybe these could be addressed, but they are far from critical, and just because some people think it's ugly doesn't mean it's even a bug. I would really prefer that we don't delay fixing a critical for something like that. The patch in #36 also does not take into account many of the changes Seven makes to the tabs. If you guys think the Seven should be fixed here, which I still disagree with, we need to get everything else working well first.

I'm in the process of taking screenshots comparing HEAD vs. patch in #28 and patch in #36, and writing up an explanation for what I did. I'm assigning this to myself at least until I get that done. Standby.

Jeff Burnz’s picture

OK, lets re-establish the focus:

1) The critical issue is core handling of vertical tabs - this is priority one and the only thing we should address in this patch.

2) Seven is off the table for now. If problems arise we look at that in the Seven queue as per any normal bug.

Right now the focus should be firmly on the critical issue. Once we have that down we could reconsider Seven.

Jacine - that extra wrapper could make sense for themers, perhaps we can consider it here (I have not tested beyond a cursory glance), certainly it opens the door for us in Seven to remove the crufty css alter.

reglogge’s picture

@Jacine: I think there is a misunderstanding here.

- As far as I can see, #36 does revert a few of your IE fixes - but only where they are not necessary with my approach anymore. I certainly don't want to make you waste hours, therefore it's good that you assigned this to yourself now. I will hold off with further patches until you and Jeff have tested #36.
- #36 does not introduce faux columns, it *removes* them from the only core theme that uses them (Seven), and standardizes the rendering of vertical tabs across all core themes. Plus we save an entire stylesheet in Seven, the Seven css_alter and squash another bug this way. I think that's a net positive.

@Jeff: The lost styles for Seven (e.g. :hover background for the tabs) can easily be brought back in in a separate issue. Let's wait for Jacines review though.

Jacine’s picture

Assigned: Jacine » Unassigned
Status: Needs work » Needs review
FileSize
191.25 KB
183.34 KB
244.2 KB
4.63 KB

Issues #28 Fixes (see PDF files)

  • Form elements extend beyond the container (all browsers)
  • Layout borked in RTL to the point where content can't be properly edited. (all browsers)
  • Empty space underneath active tab (IE6 & IE7)
  • Outline for focused tab link extends beyond the tab (IE7)
  • Line-height on link causing Text jumping when focused in tabs (IE6)

Issues introduced in Patch #36 (see PDF files)

  • Borders are off on container in RTL (all browsers)
  • Borders partially lost on other non-active tabs on hover
  • Introduced more z-index code which is not desirable
  • Faux column div sometimes appearing inside content area (all browsers)

Changes since patch #28.

  • Removed the line-height that was causing text to jump in IE6
  • Thanks for explaining the keyboard tabbing functionality, Everett. That's exactly what I needed to know. Tracked down the source of the problem causing the container to need the position relative and the holly hack. Removing this code fixed the problem and all is still working well. I'm pretty sure the odd positioning/hasLayout hacks applied to the links was the reason this was added in the first place.
div.vertical-tabs ul.vertical-tabs-list li a:focus,
div.vertical-tabs ul.vertical-tabs-list li a:active {
  position: relative;
  z-index: 5;
}

Attached PDF files detail the problems with screenshots, showing HEAD, patch in #28 and #36.

The display block property for tab anchors is not working in IE7. We ran into this same problem with Seven, after much hacking I found the margin: 0 -100% -1px 0; line in the original CSS fixes this. Its a very rare hasLayout bug afaict.

I'm not seeing a problem like this. How are you testing this? It seems that display: block is being applied just fine on my end.

reglogge’s picture

Issues introduced in Patch #36 (see PDF files):
1. Borders are off on container in RTL (all browsers)
2. Borders partially lost on other non-active tabs on hover
3. Introduced more z-index code which is not desirable
4. Faux column div sometimes appearing inside content area (all browsers)

Some quick answers:
1. By "Borders are off" I think you mean the 1px overshooting borders. This is easily fixed by adjusting the width on active tabs to 15.05em, I just didn't notice it. The missing/misplaced borders in RTL stem from a missing line in /misc/vertical-tabs-rtl.css. Also easily added.
2. I don't see that at all testing in IE6-9, FF, Opera, Chrome and Safari
3. Why is this not desirable? This is perfectly legitimate CSS.
4. I have no idea what you mean.

The issue that led me to take the route in #36 was the major issue #896828: Vertical tabs - no visual connection between the active tab and its content, committed to core on Sept. 23, where the effect shown in the attached screenshot was deemed to be pretty bad. (Disclaimer: i adjusted the margins of input elements there to simulate the effect of panes becoming higher than the tabs - which can easily happen when modules add elements to the panes or when using Bartik with two sidebars). #36 fixes this not only for Seven but for all core themes in one fell swoop. The patch in #28 doesn't address this and could therefore be considered a regression.

Your pdf vertical-tabs-IE6.pdf showing #36 in RTL isn't correct. There is no content hidden.

The patch in #36 already works in both LRT and RTL for all core themes (Seven, Stark, Bartik, Garland) in all browsers. #28 doesn't. Just look at Bartik, Seven or Garland.

FWIW here's the redone patch from #36 with all the adjustments mentioned.

Jacine’s picture

I tested both patches thoroughly, posted screenshots and details for everything I found (in the PDF and in the comment) except for one issue (Faux column div sometimes appearing inside content area (all browsers), which I forgot to screenshot), and provided a working patch for the critical issues at hand here.

I also explained why I don't think the Seven related issues should happen here. This is also not a regression at all. 1 - There were no vertical tabs in Drupal 6, and 2 - My patch does not change the design of the tabs that are in HEAD. What you are proposing does. Also, I'm not saying that you can't try to fix this in another issue, just that it's not critical, and since Seven is doing its' own thing entirely, it's not relevant to this specific issue.

I don't know that there's anything else I can do here at this point. You guys can hash it out. I tried.

Jeff Burnz’s picture

Status: Needs review » Needs work

I've done a quick review of both patches, testing only in Stark and IE6 and IE7, since those are the hard ones to get right.

#41
- looses display block in IE7 & IE6
- If the browser window is reduced in width a certain point the tabs list will loose layout (and jump left or right, depending on the text direction), this can be fixed with position: relative; on div.vertical-tabs

I could get display block to work in IE6 by setting the width on div.vertical-tabs ul.vertical-tabs-list li a
I could get display block to work in IE7 by setting the width on div.vertical-tabs ul.vertical-tabs-list li

Sounds so simple but, alas of course its not as setting two widths causes all sorts of hilarity. I could live with IE6 not having display block working to be frank, as this is perhaps the only real issue I have with this patch. Two small fixes and either concede on IE6 or find another fix, either way this is looking very robust and very clean.

#42
- in RTL IE7 looses the display block
- IE7 can get some extra "padding" when the last tab is selected (right below it, even when the pane is very short)
- in IE6 when hovering inactive tabs they can loose the border right (which is actually set on the panes)
- on page reload in IE6 sometimes the panes are mostly #eee, until I click something
- no border bottom on the last tab
- changes the design

This patch is harder to understand because of the z-indexing and I am having a hard time debugging it.

Conclusion: both need work, however why are we competing here - can we please hold fire for a second and work out the specification and collaborate on a grade solution. This is a lot of work to test and debug two patches.

If I have to pick on it would be Jacines approach, its a lot cleaner and fixes the critical issue with some very minor issues to clean up. The design change is just that, a design change, and not a requisite of fixing the critical.

EDIT: Jacine, atm I am testing with the IE browsers from spoon.com, I also use IE Tester but its very unstable on my system, however both give the same results.

Jeff Burnz’s picture

Status: Needs work » Needs review
FileSize
4.99 KB

I've had a go at reworking the patch from #41, however fixing the layout issues (the tabs list can jump out of alignment when you resize the browser in IE6/7 - only for fluid width themes) proved to be rather tricky so in effect the patch has changed a fair amount:

1 - fixes the layout problem in #41
2 - fixes the display block problem in #41 (tabs can loose display block in IE7)

There is one caveat I am yet to solve - in IE7 and Opera if the browser is reduced to a very narrow width the fieldsets can wrap under the tabs. Not sure if this is a huge problem because it has to be very narrow, more narrow than Bartik with two sidebars.

Also you might think the way the layout works in this patch is a little magical - it uses a combination of floats, position relative with negative values and negative margins... well, IE6/7 are a huge PITA and we need a little magic sometimes...

Regarding Bartik, I made the tabs 12em wide instead of 15, I think in Bartik with 15em tabs they take up too much room.

The patch does not include the extra system.base.css addition for IE6 textarea nor does it change anything in Bartik. We can get to those later, right now the critical is what we should fix afaict.

Jacine’s picture

Jeff, I didn't realize you responded about the testing. When I was asking how were testing, I was referring specifically to the display: block issue. I'm a little baffled by this, because I am seeing it work just fine on my end. I would really like to see what you are seeing. Maybe a screenshot or some other code you are trying to apply? From what I can tell, the position: relative (unrelated) was still needed, like you said, so I added it back to my last patch, and went and downloaded IETester. I have 2 virtual machines that I use to test IE in native Windows environments. It's painfully slow at times, but I have found no better way to test IE6 especially. I test IE6 on XP SP2 and IE7 and IE8 on Vista.

I'm getting display: block in IETester as well. I would really l like to figure out exactly what is going on with that, before adding widths for links, and negative margins for fieldset wrappers, personally, but I don't have Windows 7. However, IE6 users definitely don't have Windows 7 either, and isn't IE8 what's installed by default on Windows 7? I think it's worth trying to figure out if the discrepancy we have here is a result of inconsistencies.

Anyway, here's a bunch of screenshots showing display block clearly working on my end in IE6. I also included 2 that show what happens if I manually set display: inline or display: inline-block on one of the links and a screenshot of IETester, which shows the same thing. Maybe it will help?

TBH, after spending the majority of my weekend working on this, I'm not thrilled to have yet another completely different patch here to review. This issue is currently sucking all the will I have to work on Drupal 7 right now, but since you've been so courteous as to review my patch, I will do the same for yours.

Jacine’s picture

Oy, removing duplicate comment of #46.

aspilicious’s picture

Issue tags: -RTL

Can't view the images :s

Jacine’s picture

FileSize
182.52 KB

Thanks @aspilicious & @Bojhan. Not sure what happened there.

I forgot to attach the IETester screenshot I referred to, so I'm attaching it here.

Jeff Burnz’s picture

Oh shivers, I made a screencast the other day about this, seems I forgot to add it - its done in IE7/Stark with the patch from #41 - http://bit.ly/c6A8R4

I get this in IE7, navigating with the mouse. If I navigate with the keyboard the outlines appear as if display: block; is working, but with the mouse no worky (see the video above).

Your patch is much more simple code and would be more preferable, agreed, but we need wider testing. I can't spend too much more time on this (with regards to writing code), I'm up for reviews of course. I'll let you drive this forward, just threw a patch in there as a POC + fall back if we can't nail this nasty little IE7 bug.

Jacine’s picture

Assigned: Unassigned » Jacine
Status: Needs review » Needs work

Thank you Jeff. That was perfect.

I made a copy of my Vista VM and installed "IE Collection" to triple check. Good thing I made a copy of the VM, cuz it hijacked my pristine copy of IE6. And well, whaddya know... I was able to reproduce this in their "IE 7.0 (7.00.5730.13)", but not in Stark. Only in Garland and Bartik! Fun.

EDIT: Eventually I did see this in Stark too.

Jacine’s picture

Assigned: Unassigned » Jacine
FileSize
4.28 KB

Ok, I got this sucker...

Jeff, like you said the width: 100% was working on the li, but it was also causing other undesirable issues, like actually messing with the width (which of course IE sucks at) and applying it also borked IE6.

Luckily, min-width: 0 works too, and doesn't affect anything else. :)

Bartik is still having a slight issue with the left border on the selected tab appearing, except when you actually click the tab, but Garland and Stark are perfect.

Here's what else has changed since the last patch:

  • Added back the position: relative on div.vertical-tabs
  • Changed all occurrences of div.vertical-tabs to .vertical-tabs, except for the first div.vertical-tabs, where it was needed. I found the original issue where this happened and it seems they just went overboard because they were having issues with the first div. From my testing the first was the only one that needed that specificity. I know this whole file could probably be a lot less specific, and I did try to slim them down more than this, but I ran into problems with core themes.
  • Removed the change in system.base.css, it shouldn't have been there in the first place.

That's about it.

chx’s picture

Issue tags: +Needs screenshots
chx’s picture

Issue tags: -Needs screenshots

Sorry I thought the new patch needed a new screenshot but it seems hovering screenshots are needed and those are not really possible.

Jacine’s picture

Ok... here's a screencast: http://vimeo.com/15556578

Jacine’s picture

Assigned: Jacine » Unassigned
Jacine’s picture

Assigned: Jacine » Unassigned
Status: Needs work » Needs review
FileSize
455.35 KB

To summarize:

These are the problems the patch in #53 fixes:

  1. Form elements extend beyond the container (all browsers)
  2. Layout borked in RTL to the point where content can't be properly edited. (all browsers)
  3. Empty space underneath active tab (IE6 & IE7)
  4. Outline for focused tab link extends beyond the tab (IE7)
  5. Line-height on link causing Text jumping when focused in tabs (IE6)

This screencast demonstrates the issue found by Jeff in IE7 with a previous iteration of this patch as being resolved:
http://vimeo.com/15556578

I get this in IE7, navigating with the mouse. If I navigate with the keyboard the outlines appear as if display: block; is working, but with the mouse no worky (see the video above).

http://bit.ly/c6A8R4

I've also taken new "after" screenshots to prove that everything is still good since the last round. Those are attached in the PDF.

Jacine’s picture

@timplunkett noticed an issue with a comment that should read LTR instead of RTL ;)

Fixed.

tim.plunkett’s picture

Status: Needs review » Reviewed & tested by the community

Testbot has completely stalled. Also, can pure CSS changes even fail tests?

Anyway, I've gone through this twice, and it's ready to go.

Jeff Burnz’s picture

Status: Reviewed & tested by the community » Needs work
+++ misc/vertical-tabs.css	5 Oct 2010 21:34:33 -0000
@@ -1,70 +1,78 @@
+.vertical-tabs ul.vertical-tabs-list span.selected strong {

This selector targets nothing, I think you want to following if the intention is to style the tab "title".

.vertical-tabs ul.vertical-tabs-list .selected strong

Still testing, but yes this looks really good, and oh my - min-width: 0;, very cunning indeed :)

Powered by Dreditor.

Jacine’s picture

Status: Needs work » Needs review
FileSize
4.28 KB

Thanks Jeff!

Yes, good catch. That's how it was before, and I'd really love to remove it entirely, but that's another story.

Here's an updated patch that fixes it :)

Jeff Burnz’s picture

Status: Needs review » Reviewed & tested by the community

Great, back to RTBC. This is a massive improvement and fixes the critical issue.

Jacine’s picture

Status: Reviewed & tested by the community » Needs review

Hrm, hello testbot?

Jacine’s picture

Same patch again, for the testbot.

Kiphaas7’s picture

Status: Needs review » Reviewed & tested by the community

RTBC based on #63 and #65?

Rakhi’s picture

Issue tags: +Drupal, +vertical tabs

The problem exist with vertical tab CSS, stylesheet needs to be adjusted.

webchick’s picture

Status: Reviewed & tested by the community » Fixed

Wow, I think my CSS IQ just shot up 12 points as a result of this issue. Great work, folks!

Committed to HEAD.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

Mark Trapp’s picture